基于Verilog的数字频率计的设计包含代码及仿真

发布时间 : 星期一 文章基于Verilog的数字频率计的设计包含代码及仿真更新完毕开始阅读

else begin

case(count)

0: begin sign_out4<=latch1; se<=count;end 1: begin sign_out4<=latch2; se<=count;end 2: begin sign_out4<=latch3; se<=count;end

3: begin sign_out4<=latch4; se<=count;end 4: begin sign_out4<=latch5; se<=count;end

5: begin sign_out4<=latch6; se<=count;end default:sign_out4<=4'b1111; endcase end end

//////////////////////////////////////////////////////////////////////////////////////////// 将数据依次译码 always@(posedge clk_1khz) begin

if(ff==2'b01&&se==3)begin dp<=0;end

else if(ff==2'b10&&se==2)begin dp<=0;end else if(ff==2'b11&&se==1)begin dp<=0;end else begin dp<=1;end end

//////////////////////////////////////////////////////////////////////////////////档位选择 always@ ( sign_out4) begin if(!rest)

begin segs<=0;end else

begin

case(sign_out4) 0:segs<=7'b0000001; 1:segs<=7'b1001111; 2:segs<=7'b0010010; 3:segs<=7'b0000110; 4:segs<=7'b1001100; 5:segs<=7'b0100100; 6:segs<=7'b1100000; 7:segs<=7'b0001111;

8:segs<=7'b0000000; 9:segs<=7'b0000100; default:segs<=7'b1111111;

endcase end end

//////////////////////////////////////////////////////////////////////////////////////译码显示 endmodule

仿真图

模块仿真图

五,顶层电路程序

module top(rest,clk,key1,key2,key3,clk_in,se,segs,led,dp,en,yichu); input rest,clk,clk_in,key1,key2,key3; output dp,led,en,yichu; output [3:1] se ; output[7:1] segs;

wire [4:1]out1,out2,out3,out4,out5,out6; wire [2:1]ff; wire gate_out1; count

count(.clk(clk),.rest(rest),.clk_10hz(clk_10hz),.clk_100hz(clk_100hz),.clk_1khz(clk_1khz));

///////////////////////////////////////////////////////////////////////分频器 chose

chose(.rest(rest),.clk_1khz(clk_1khz),.clk_10hz(clk_10hz),.clk_100hz(clk_100hz),. ky1(key1),.key10(key2),.key100(key3),

.gate_out1(gate_out1),.ff(ff),.clk_latch(clk_latch),. clk_cear(clk_clear));

/////////////////////////////////////时基选择模块

counter counter(.start(gate_out1),.rest(rest),.clk_in(clk_in),.cnt1(out1), .yichu(yichu) ,.cnt2(out2),.cnt3(out3),.cnt4(out4),.cnt5(out5),.cnt6(out6),.clk_clear(clk_clear));

////////////////////////////////////计数器器 v138 v138(.rest(rest),.clk_1khz(clk_1khz),.se(se),

.led(led),.in1(out1),.in2(out2),.in3(out3),.in4(out4),

.in5(out5),.in6(out6),.segs(segs),.ff(ff),.en(en),.dp(dp),.clk_latch(clk_latch)); endmodule

///////////////////////////////////////////////////译码显示

顶层电路图

生成的各个模块按要求连线,形成顶层原理图,如下

3 分配引脚和下载实现

根据《XC3S200A I/O口对应管脚参考》分配引脚。引脚分配完毕后双击

“Generate programming”对所有程序进行综合,改正综合过程中提示的错误和警 把程序下载到电路板上。Configure Device”告,然后运行“

4 结果测试

在成功下载并运行后,评估该设计系统的实际测量效果,作对比试验,选用频率可调的函数发生器生成测试信号。当闸门时间为1s时,测得结果如下: 序号 输入(Hz) 输出(KHz) 1 1 000.001

联系合同范文客服:xxxxx#qq.com(#替换为@)