最近大家都在讨论数字频率计的设计电路图_数字频率计的设计相关的事情,对此小编也是非常的感应兴趣,那么这件事具体又是怎么回事呢?下面就是小编搜索到的关于数字频率计的设计电路图_数字频率计的设计事件的相关信息,我们一起来看看吧!
1、moduletest(clk,rst_n,fre,duan,dig,clk _ 1 ms);
2、inputclk,rst_n,fre
(资料图)
3、输出[6:0]段;
4、输出[3:0]挖;
5、outputclk _ 1ms
6、reg[12:0]fre _ out;
7、wirefre
8、reg[31:0]cn t1;
9、reg[31:0]CNT 2;
10、regclk _ 1s
11、//声明输入,输出端口和用到的变量
12、* * * * * * * * * * * * * * * * * * * * * * 0.5赫兹时钟* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
13、始终@(posedgeclkornegedgerst_n)开始
14、如果(!rst_n)开始
15、cn t1=0;
16、clk _ 1s=0;
17、目标
18、else if(cn t1==32 " d 50000000)开始
19、cn t1=0;
20、clk _ 1s=~ clk _ 1s
21、目标
22、其他
23、cn t1=cn t1 1;
24、目标
25、//通过分频获得周期为2s的时钟,用于计数
26、/* * * * * * * * * * * * * * * * * * * * 2时钟寄存器************************/
27、regclk _ 1s _ temp
28、始终@(posedgeclkornegedgerst_n)开始
29、如果(!rst_n)开始
30、clk _ 1s _ temp=0;
31、目标
32、其他
33、时钟_ 1s _温度=时钟_ 1s
34、目标
35、/* * * * * * * * * * * * * * * * * * * * * * 2时钟寄存器************************/
36、regclk _ 1s _ temp2
37、始终@(posedgeclkornegedgerst_n)开始
38、如果(!rst_n)
39、clk _ 1s _ temp 2=0;
40、其他
41、时钟_ 1s _温度2=时钟_ 1s _温度
42、目标
43、//2s时钟寄存器,用于判断上升沿或下降沿
44、/**********************输入信号寄存器**************/
45、regfre _ temp
46、始终@(posedgeclkornegedgerst_n)开始
47、如果(!rst_n)
48、fre _ temp=0;
49、其他
50、频率温度=频率
51、目标
52、/**********************输入信号寄存器****************/
53、regfre _ temp2
54、始终@(posedgeclkornegedgerst_n)开始
55、如果(!rst_n)
56、fre _ temp 2=0;
57、其他
58、频率_温度2=频率_温度;
59、目标
60、//输入信号寄存器,用于判断输入信号的上升沿判断
61、/**********************计数器****************/
62、始终@(posedgeclkornegedgerst_n)开始
63、如果(!rst_n)
64、CNT 2=0;
65、else if((~ clk _ 1s _ temp)(clk _ 1s _ temp 2))//当时钟_1s有下降沿,cnt2归0
66、CNT 2=0;
67、else if((~ fre _ temp)(fre _ temp 2)clk _ 1s)//当输入信号倍频器有上升沿
68、CNT 2=CNT 2 1;//clk_1s信号值为1,cnt2值加一
69、目标
70、//计数器
71、/* * * * * * * * * * * * * * pass CNT 2 to fre _ out * * * * * * * * * * * * * */
72、始终@(posedgeclkornegedgerst_n)开始
73、如果(!rst_n)
74、fre _ out=0;
75、else if((~ clk _ 1s)(clk _ 1s _ temp))//negativeedgepassvalue
76、fre _ out=cnt2
77、目标
78、//把cnt2的值传递给频率输出
79、/* * * * * * * * * * * * 1个msclock * * * * * * * * * * * *
80、reg[31:0]CNT;
81、reg clk _ 1毫秒
82、始终@(posedgeclkornegedgerst_n)开始
83、如果(!rst_n)
84、CNT=0;
85、否则if(计数==17 " d 100000)开始//250hz
86、CNT=0;
87、clk _ 1ms=~ clk _ 1ms
88、目标
89、else CNT=CNT 1;
90、目标
91、//1毫秒时钟用于数码管显示模块
92、/* * * * * * * * * * * * Digitaltubedisplaysection * * * * * * * * * * * */
93、reg[3:0]dig;
94、寄存器[6:0]段;
95、电线[3:0]你,匈奴,十,一;
96、assignthou=(fre_out/1000);
97、assignhun=(fre_out/100);
98、assignten=(fre_out/10);
99、assignone=(fre_out);
100、总是@(posedgeclk _ 1 msornegegerst _ n)开始
101、如果(!rst_n)开始
102、挖掘=4英尺b1110
103、目标
104、其他
105、dig={dig[0],dig[3:1]};
106、目标
107、总是@(posedgeclk_1ms)开始
108、如果(!rst_n)开始
109、段=7 " b1111111
110、目标
111、埃尔斯贝金
112、案例(挖掘)
113、4"b0111:开始大小写(匈牙利文)
114、4"d0:段=7英尺b1000000
115、4英寸d1:段=7 " b1111001
116、4英寸d2:段=7 " b0100100
117、4英寸d3:段=7 " b0110000
118、4英尺d4:段=7 " b0011001
119、4英寸d5:段=7 " b0010010
120、4"d6:段=7 " b0000010
121、4英尺d7英寸:段=7英尺b1111000
122、4英尺8英寸:段=7 " b0000000
123、4英尺9英寸:段=7 " b0010000
124、默认值:
125、结束案例
126、目标
127、4英尺b1011英寸:开始
128、案例(十)
129、4"d0:段=7英尺b1000000
130、4英寸d1:段=7 " b1111001
131、4英寸d2:段=7 " b0100100
132、4英寸d3:段=7 " b0110000
133、4英尺d4:段=7 " b0011001
134、4英寸d5:段=7 " b0010010
135、4"d6:段=7 " b0000010
136、4英尺d7英寸:段=7英尺b1111000
137、4英尺8英寸:段=7 " b0000000
138、4英尺9英寸:段=7 " b0010000
139、默认值:
140、结束案例
141、目标
142、4英尺b1101英寸:开始
143、案例(一)
144、4"d0:段=7英尺b1000000
145、4英寸d1:段=7 " b1111001
146、4英寸d2:段=7 " b0100100
147、4英寸d3:段=7 " b0110000
148、4英尺d4:段=7 " b0011001
149、4英寸d5:段=7 " b0010010
150、4"d6:段=7 " b0000010
151、4英尺d7英寸:段=7英尺b1111000
152、4英尺8英寸:段=7 " b0000000
153、4英尺9英寸:段=7 " b0010000
154、默认值:
155、结束案例
156、目标
157、4英尺b1110英寸:开始
158、案件(千)
159、4"d0:段=7英尺b1000000
160、4英寸d1:段=7 " b1111001
161、4英寸d2:段=7 " b0100100
162、4英寸d3:段=7 " b0110000
163、4英尺d4:段=7 " b0011001
164、4英寸d5:段=7 " b0010010
165、4"d6:段=7 " b0000010
166、4英尺d7英寸:段=7英尺b1111000
167、4英尺8英寸:段=7 " b0000000
168、4英尺9英寸:段=7 " b0010000
169、默认值:
170、结束案例
171、目标
172、默认:段=7 " b0000000
173、结束案例
174、目标
175、目标
176、末端模块
本文到此结束,希望对大家有所帮助。