手抄报 安全手抄报 手抄报内容 手抄报图片 英语手抄报 清明节手抄报 节约用水手抄报

数字频率计的设计

时间:2024-10-12 08:21:19

1、moduletest(clk,rst_n,fre,duan,dig,clk_1ms);inputclk,rst_n,fre;output[6:0]duan;output[3:0]dig;outputclk_1ms;reg[12:0]fre_out;wirefre;reg[31:0]cnt1;reg[31:0]cnt2;regclk_1s;//声明输入,输出端口和用到的变量

2、/*********************0.5hz clock************************************/always@(posedgeclkornegedgerst_n)beginif(!rst_n)begincnt1<=0;clk_1s<=0;endelseif(cnt1==32'd50000000)begincnt1<=0;clk_1s<=~clk_1s;endelsecnt1<=cnt1+1;end//通过分频获得周期为2s的时钟,用于计数

3、/**********************2sclockregister**********涯箨唁峦**************/regclk_1s_temp;always@(posed爿讥旌护geclkornegedgerst_n)beginif(!rst_n)beginclk_1s_temp<=0;endelseclk_1s_temp<=clk_1s;end/***********************2sclockregister************************/regclk_1s_temp2;always@(posedgeclkornegedgerst_n)beginif(!rst_n)clk_1s_temp2<=0;elseclk_1s_temp2<=clk_1s_temp;end//2s时钟寄存器,用于判断上升沿或下降沿

4、/***********************inputsignalregister********************/regfre_temp;always@(posedgeclkornegedgerst_n)beginif(!rst_n)fre_temp<=0;elsefre_temp<=fre;end/***********************inputsignalregister*******************/regfre_temp2;always@(posedgeclkornegedgerst_n)beginif(!rst_n)fre_temp2<=0;elsefre_temp2<=fre_temp;end//输入信号寄存器,用于判断输入信号的上升沿判断

5、/***********************counter*******************/ always@(posedgeclkornegedgerst_n)beginif(!rst_n)cnt2<=0;elseif((~clk_1s_temp)&(clk_1s_temp2))//当clk_1s有下降沿,cnt2 归 0cnt2<=0;elseif((~fre_temp)&(fre_temp2)&clk_1s)//当输入信号 fre有上升沿cnt2<=cnt2+1;//clk_1s信号 值为 1,cnt2 值加1end//计数器

6、/****************passcnt2tofre_out**************涯箨唁峦**/always@(posedgeclkornegedgerst_n)beginif烫喇霰嘴(!rst_n)fre_out<=0;elseif((~clk_1s)&(clk_1s_temp))//negativeedgepassvaluefre_out<=cnt2;end//把cnt2的值传递给fre_out/****************1msclock****************/reg[31:0]cnt;regclk_1ms;always@(posedgeclkornegedgerst_n)beginif(!rst_n)cnt<=0;elseif(cnt==17'd100000)begin//250hzcnt<=0;clk_1ms<=~clk_1ms;endelsecnt<=cnt+1;end//1ms时钟用于数码管显示模块

7、/****************Digitaltubedisplaysection****************/reg[3:0]dig;reg[6:0]duan;wire[3:0]thou,hun,ten,one;assignthou=(fre_out/1000)%10;assignhun=(fre_out/100)%10;assignten=(fre_out/10)%10;assignone=(fre_out)%10;always@(posedgeclk_1msornegedgerst_n)beginif(!rst_n)begindig=4'b1110;endelsedig={dig[0],dig[3:1]};end

8、al嘛术铹砾ways@(posedgeclk_1ms)beginif(!rst_n)beginduan<=7'b1111111;endelsebegincase(dig)4'b0111:begin case(hun)4'd0:duan<=7'b1000000;4'd1:duan<=7'b1111001;4'd2:duan<=7'b0100100;4'd3:duan<=7'b0110000;4'd4:duan<=7'b0011001;4'd5:duan<=7'b0010010;4'd6:duan<=7'b0000010;4'd7:duan<=7'b1111000;4'd8:duan<=7'b0000000;4'd9:duan<=7'b0010000;default:;endcaseend4'b1011:begincase(ten)4'd0:duan<=7'b1000000;4'd1:duan<=7'b1111001;4'd2:duan<=7'b0100100;4'd3:duan<=7'b0110000;4'd4:duan<=7'b0011001;4'd5:duan<=7'b0010010;4'd6:duan<=7'b0000010;4'd7:duan<=7'b1111000;4'd8:duan<=7'b0000000;4'd9:duan<=7'b0010000;default:;endcaseend4'b1101:begincase(one)4'd0:duan<=7'b1000000;4'd1:duan<=7'b1111001;4'd2:duan<=7'b0100100;4'd3:duan<=7'b0110000;4'd4:duan<=7'b0011001;4'd5:duan<=7'b0010010;4'd6:duan<=7'b0000010;4'd7:duan<=7'b1111000;4'd8:duan<=7'b0000000;4'd9:duan<=7'b0010000;default:;endcaseend4'b1110:begincase(thou)4'd0:duan<=7'b1000000;4'd1:duan<=7'b1111001;4'd2:duan<=7'b0100100;4'd3:duan<=7'b0110000;4'd4:duan<=7'b0011001;4'd5:duan<=7'b0010010;4'd6:duan<=7'b0000010;4'd7:duan<=7'b1111000;4'd8:duan<=7'b0000000;4'd9:duan<=7'b0010000;default:;endcaseenddefault:duan<=7'b0000000;endcaseendendendmodule

© 手抄报圈