- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
简单4位数字频率计设计
设计要求
(1)、利用Verilog HDL语言行为描述方法,设计一个简单4位数字频率计;
(2)、要求输入标按时钟信号频率为1MHz,系统可计数频率范围为1Hz~9999Hz;
(3)、系统含有复位信号,且当计数频率发生溢出时能够给出指示信号,计数频率经过4个共阴数码管进行显示(动态扫描显示)。
系统结构框图
依据设计要求,输入系统标按时钟信号要先经过分频后得到一个周期为2s占空比50%信号,用来对输入信号采样,得到采样信号GATED_CLK;为了能够控制计数模块对采样信号进行正常计数及保留计数后频率,这要求,要在计数器刚好完成计数后立即将数据输出给显示部分进行显示,而且要为下次计数做好准备,所以数据信号处理部分还要有产生控制计数器两个信号LOAD和COUNTER_CLR,LOAD信号控制计数完成后数据立即输出给显示,COUNTER_CLR信号控制计数器清零;计数模块就是完成对采样信号计数,并当计数发生溢出时产生溢出信号FLOW_UP;显示控制模块要完成将计数模块输入信号进行译码显示。
信号描述
测试信号采样原理:
GATED_CLK、LOAD、COUNTER_CLR信号关系:
程序中用到信号变量:
FREQUENCY_COUNTROL_BLOCK
FREQUENCY_COUNTER_BLOCK
FREQUENCY_DISPLY_BLOCK
GATED_CLK
采样信号
COUT
计数输出信号
DOUT
输出到数码管
LOAD
控制计数器信号
FLOW_UP
计数溢出信号
CDIN
计数输入信号
COUNTER_CLR
清零计数器信号
CLOCK_IN
计数器时钟信号
DCLK_IN
标按时钟信号
CLK_IN
标按时钟信号
LOAD
控制计数输出
RESET
复位信号
SIGNAL_TEST
测试信号
COUNTER_CLR
清零计数信号
RESET
复位信号
RESET
复位信号
Verilog程序
各子模块verilog程序:
(1)信号处理模块_verilog:
module FREQUENCY_COUNTROL_BLOCK(GATED_CLK,LOAD,COUNTER_CLR,CLK_IN,SIGNAL_TEST,RESET);
output GATED_CLK;
output LOAD;
output COUNTER_CLR;
input CLK_IN;
input SIGNAL_TEST;
input RESET;
reg LOAD;
reg COUNTER_CLR;
reg DIVIDE_CLK;
reg[19:0] cn;
reg A1,A2;
//信号分频:由CLK_IN得到分频后信号DIVIDE_CLK(0.5Hz)
always @(posedge CLK_IN)
begin
if(RESET)
begin
DIVIDE_CLK=0;
cn=0;
end
else if(cn==1000000)
begin
cn=0;
DIVIDE_CLK=~DIVIDE_CLK;
end
else
cn=cn+1;
end
//频率计数控制信号产生:产生LOAD信号和COUNTER_CLR信号
always @(posedge SIGNAL_TEST)
begin
A1=~DIVIDE_CLK;
end
always @(posedge SIGNAL_TEST)
begin
A2=A1;
end
always @(A1 or A2)
begin
LOAD=A1(!A2);
end
always @(posedge SIGNAL_TEST)
COUNTER_CLR=LOAD;
//产生驱动计数模块信号GATED_CLK,也就是被计数模块检测信号
assign GATED_CLK=SIGNAL_TESTDIVIDE_CLK;
endmodule
(2)、计数器模块:
module FREQUENCY_COUNTER_BLOCK(COUT,FLOW_UP,CLOCK_IN,RESET,LOAD,COUNTER_CLR);
output[15:0] COUT;
output FLOW_UP;
input CLOCK_IN;
input LOAD;
input COUNTER_CLR;
input RESET;
reg[15:0] TEMP;
reg FLOW_UP;
parameter B_SIZE=16; //二进制位宽,为便于移植,全部定义了成参数
reg[
您可能关注的文档
最近下载
- 2021-2022学年江西省南昌市九年级(上)期中物理试卷(附答案详解).docx VIP
- 全自动氩气纯化器-四川普瑞净化设备有限公司.PDF VIP
- 山东科学技术版劳动实践指导手册六年级第3课家用器具使用与维护家用电器的使用科学使用电冰箱 教案.docx VIP
- 单式氩气纯化器技术参数要求.DOC VIP
- 央国企成立数科公司底层逻辑与相关定位.docx VIP
- (正式版)C-J-T 232-2006 薄壁不锈钢内卡式管材及管件.docx VIP
- 2025年医学检验实验室ISO15189认可评审介绍.pptx VIP
- 八个方向路线图.ppt VIP
- 优秀大学生职业生涯规划书经典PPT.pptx VIP
- GB50007-2011 建筑地基基础设计规范.docx
文档评论(0)