基于Verilog的数字频率计的设计包含代码及仿真Word文档格式.docx
- 文档编号:15051575
- 上传时间:2022-10-27
- 格式:DOCX
- 页数:23
- 大小:714.17KB
基于Verilog的数字频率计的设计包含代码及仿真Word文档格式.docx
《基于Verilog的数字频率计的设计包含代码及仿真Word文档格式.docx》由会员分享,可在线阅读,更多相关《基于Verilog的数字频率计的设计包含代码及仿真Word文档格式.docx(23页珍藏版)》请在冰豆网上搜索。
六、实验任务与要求
频率测量范围为10Hz~10MHz,用6只数码管以kHz为单位显示测量结果;
有三个带锁按键开关(任何时候都只会有一个被按下)用来选择1S、0.1S和0.01S三个闸门时间中的一个;
有一个按钮开关用来使频率计复位;
有两只LED,一只用来显示闸门的开与闭,另一只当计数器溢出时做溢出指示。
数字频率计的相关技术指标如下:
1、位数:
测量频率通过LED数码管为六位十进制数显示。
2、测试频率范围为:
10HZ-10MHZ。
3、计数器溢出时要有溢出标志over。
4、需要有闸门标志gate。
5、显示工作方式:
a、用BCD七段共阳极数码管显示读数,只有在读数不发生跳变时才是正确的结果。
b、采用记忆显示方法,即在一次测试结束时,显示测试结果,此显示值一直保留到下次测量显示数到来,才将上次显示更新。
用第二次测试结果,更新显示值。
6、要求被测输入信号应是符合数字电路要求的脉冲波。
设计环境介绍七、verilogVerilog
VerilogHDL是目前应用最为广泛的硬件描述语言.VerilogHDL可以用来进行各种层次的逻辑设计,也可以进数字系统的逻辑综合,仿真验证和时序分析等。
VerilogHDL适合算法级,寄存器级,逻辑级,开关级、系统级和版图级等各个层次的设计和描述.
verilogHDL进行设计最大的优点是其工艺无关性.这使得工程师在功能设计,逻辑验证阶段可以不必过多考虑门级及工艺实现的具体细节,只需根据系统设计的要求施加不同的约束条件,即可设计出实际电路.
verilogHDL是一种硬件描述语言(hardwaredescriptionlanguage),为了制作数字电路而用来描述ASICS和FPGA的设计之用。
verilogHDL的设计者想要以C编程语言为基础设计一种语言,可以使工程师比较容易学习。
Verilog是由en:
GatewayDesignAutomation公司于大约1984年开始发展。
GatewayDesignAutomation公司后来被CadenceDesignSystems于1990年所购并。
现在Cadence对于Gateway公司的Verilog和Verilog-XL模拟器拥有全部的财产权。
选择VHDL还是verilogHDL?
这是一个初学者最常见的问题。
其实两种语言的差别并不大,他们的描述能力也是类似的。
掌握其中一种语言以后,可以通过短期的学习,较快的学会另一种语言。
选择何种语言主要还是看周围人群的使用习惯,这样可以方便日后的学习交流。
当然,如果您是专用集成电路(ASIC)设计人员,则必须首先掌握verilog,因为在IC设计领域,90%以上的公司都是采用verilog进行IC设计。
对于PLD/FPGA设计者而言,两种语言可以自由选择。
八、实验原理内变化的次数。
若在一定)秒(1所谓“频率”,就是周期性信号在单位时间.
N
(1)时间内计得这个周期信号变化的次数为N,则其频率可表达为:
f?
T所表达的频率的定义进行测频,其原理方框
(1)电子技术器可以严格按公式所示:
图如图1
②⑤①计数器闸门放大整形
④③时基信号发生器门控电路
1测频原理
首先,把被测信号①(以正弦波为例)通过放大整形电路变成脉冲②(实际上变f,然后将它加到闸门的一个输入端。
闸)其重复频率等于被测频率成方波即可x门通过门控信号④来控制开、闭时间,只有在闸门开通时间T内,被计数的脉冲⑤才能通过闸门,被送到十进制电子计数器进行计数。
门控信号的时间T是非常准确的,以它作为时间基准,它由时基发生器提供。
时基信号发生器由一个高稳定的石英振荡器和一系列数字分频器组成,由它输出的标准时间脉冲(时标)去控制门控电路形成门控信号。
比如,时标信号的重复周期为1S,则加到闸门的门控信号作用时间T及闸门时间亦准确的等于1S,及闸门开通时间为1S,这时若计得f?
10000Hz。
10000个数,则有
(1)式知,被测频率xf和时从以上讨论可知,电子计数器的测频原理实质上以比较法为基础,它将x基信号频率相比,两个频率相比的结果以数字的形式显示出来。
1.原理框图九、溢出信号
阀门控制锁存器clearlatch七段译码管扫描显示系统显示数据
溢出指示灯
被测信号
计数器
门控电路
时基分频器
石英振荡
2、各模块功能及实现
一.分频模块程序
count(rest,clk,clk_1hz,clk_10hz,clk_100hz,clk_1khz);
module
inputclk,rest;
outputregclk_1hz,clk_10hz,clk_100hz,clk_1khz;
reg[29:
0]count1,count2,count3,count4;
initial
begin
clk_1hz=0;
clk_10hz=0;
clk_100hz=0;
clk_1khz=0;
count1=0;
count2=0;
count3=0;
count4=0;
end
always@(posedgeclk)
if(!
rest)
count1<
=0;
count2<
count3<
count4<
clk_1hz<
clk_10hz<
clk_100hz<
clk_1khz<
elsebegin
if(count1==24000000)
begincount1<
clk_1hz<
=~clk_1hz;
elsecount1<
=count1+1;
if(count2==2400000)
begincount2<
clk_10hz<
=~clk_10hz;
end
elsecount2<
=count2+1;
if(count3==240000)
begincount3<
=~clk_100hz;
elsecount3<
=count3+1;
if(count4==24000)
begincount4<
=~clk_1khz;
elsecount4<
=count4+1;
endmodule
仿真图
仿真模块
,门控电路和清零,锁存,阀门信号产生程序二
modulechose(rest,clk_10hz,clk_100hzhz,clk_1khz,key1,key10,key100,
gate_out1,ff,clk_latch,clk_clear);
inputrest,clk_10hz,clk_100hz,clk_1khz,key1,key10,key100;
outputgate_out1,clk_latch,clk_clear;
outputreg[2:
1]ff;
reggate_out1,clk_latch,clk_clear,gate;
reg[4:
1]count;
initialbegingate_out1=0;
ff=0;
clk_latch=0;
clk_clear=0;
gate=0;
count=0;
always@(posedgeclk_1khz)
rest)begingate_out1<
ff<
=2'
b00;
if(key1==1&
&
key10==0&
key100==0)begin
gate<
=clk_10hz;
b01;
elseif(key1==0&
key10==1&
=clk_100hz;
ff<
b10;
key100==1)begin
=clk_1khz;
b11;
elsebeginff<
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
always@(posedgegate)
count<
=count+1;
if(count<
=9)
begingate_out1<
=1;
clk_clear<
clk_latch<
elseif(count==11)
elseif(count==13)
count<
else
仿真图
三,计数器程序
modulecounter(rest,start,clk_in,cnt1,cnt2,cnt3,cnt4,cnt5,cnt6,yichu,clk_clear);
inputrest,start,clk_in,clk_clear;
outputyichu;
regyichu;
outputreg[4:
1]cnt1,cnt2,cnt3,cnt4,cnt5,c
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 Verilog 数字频率计 设计 包含 代码 仿真