基于Verilog的数字频率计的设计(包含代码及仿真)(2020年10月整理).pptx

上传人:摩西的****12 文档编号:148837206 上传时间:2020-10-23 格式:PPTX 页数:18 大小:307.79KB
返回 下载 相关 举报
基于Verilog的数字频率计的设计(包含代码及仿真)(2020年10月整理).pptx_第1页
第1页 / 共18页
基于Verilog的数字频率计的设计(包含代码及仿真)(2020年10月整理).pptx_第2页
第2页 / 共18页
基于Verilog的数字频率计的设计(包含代码及仿真)(2020年10月整理).pptx_第3页
第3页 / 共18页
基于Verilog的数字频率计的设计(包含代码及仿真)(2020年10月整理).pptx_第4页
第4页 / 共18页
基于Verilog的数字频率计的设计(包含代码及仿真)(2020年10月整理).pptx_第5页
第5页 / 共18页
点击查看更多>>
资源描述

《基于Verilog的数字频率计的设计(包含代码及仿真)(2020年10月整理).pptx》由会员分享,可在线阅读,更多相关《基于Verilog的数字频率计的设计(包含代码及仿真)(2020年10月整理).pptx(18页珍藏版)》请在金锄头文库上搜索。

1、学 海 无 涯,一、实验名称 数字频率计的设计 二、实验地点 211 楼 303 三、实验目的和任务 (1) 了解数字电路设计的基本特点 (2) 了解数字频率计电路的基本原理 (3) 基本掌握 ISE 软件的使用(设计输入、仿真、实现) (4) 了解可编程逻辑器件( FPGA )的一般情况 (5) 基本掌握 HDL 的使用 四、实验内容 (1) 设计出符合设计要求的解决方案 (2) 设计出单元电路 (3) 利用 EDA 软件对各单元电路及整体电路进行仿真 (4)利用 EDA 软件在 ELB 电子课程设计实验板实现设计 (5) 观察实验结果 五、项目需用仪器设备名称以及所需主要元器件 PC 机、

2、EDA 教学实验系统一台,带有(SPARTAN -3A,1,XC3S200A 芯,片 ,LED 管 , 七段数码管 等)的实验板一块 , 跳线、下载电缆一根,函 数发生器。 六、实验任务与要求 频率测量范围为10Hz10MHz,用6只数码管以kHz为单位显示测量结果;有三 个带锁按键开关(任何时候都只会有一个被按下)用来选择1S、0.1S和0.01S三个 闸门时间中的一个;有一个按钮开关用来使频率计复位;有两只LED,一只用来 显示闸门的开与闭,另一只当计数器溢出时做溢出指示。 数字频率计的相关技术指标如下: 1、位数:测量频率通过LED数码管为六位十进制数显示。 2、测试频率范围为:10HZ

3、-10MHZ。 3、计数器溢出时要有溢出标志over。 4、需要有闸门标志gate。 5、显示工作方式:a、用BCD七段共阳极数码管显示读数,只有在读数不发 生跳变时才是正确的结果。b、采用记忆显示方法,即在一次测试结束时,显示 测试结果,此显示值一直保留到下次测量显示数到来,才将上次显示更新。用第 二次测试结果,更新显示值。 6、要求被测输入信号应是符合数字电路要求的脉冲波。,2,学 海 无 涯,七、verilog设计环境介绍 Verilog,Verilog HDL 是目前应用最为广泛的硬件描述语言 Verilog HDL 可以用来进行 各种层次的逻辑设计, 也可以进数字系统的逻辑综合, 仿

4、真验证和时序分析等。 Verilog HDL 适合算法级,寄存器级,逻辑级,开关级、系统级和版图级等各个层次 的设计和描述 verilogHDL 进行设计最大的优点是其工艺无关性这使得工程师在功能设计, 逻辑验证阶段可以不必过多考虑门级及工艺实现的具体细节,只需根据系统设计的要 求施加不同的约束条件,即可设计出实际电路 verilogHDL 是一种硬件描述语言(hardware description language),为了制作数 字电路而用来描述 ASICS 和 FPGA 的设计之用。 verilogHDL 的设计者想要以 C 编程语言为基础设计一种语言,可以使工程师比 较容易学习。 Ve

5、rilog 是由 en:Gateway Design Automation 公司于大约1984年开始发展。 Gateway Design Automation 公司后来被 Cadence Design Systems 于1990年所购 并。现在 Cadence 对于 Gateway 公司的 Verilog 和 Verilog-XL 模拟器拥有全部 的财产权。 选择 VHDL 还是 verilog HDL?这是一个初学者最常见的问题。其实两种语言的 差别并不大,他们的描述能力也是类似的。掌握其中一种语言以后,可以通过短期的 学习,较快的学会另一种语言。 选择何种语言主要还是看周围人群的使用习惯,

6、这 样可以方便日后的学习交流。当然, 如果您是专用集成电路( ASIC) 设计人员, 则 必须首先掌握 verilog,因为在 IC 设计领域,90%以上的公司都是采用 verilog 进行 IC 设计。对于 PLD/FPGA 设计者而言,两种语言可以自由选择。,八、实验原理 所谓“频率”,就是周期性信号在单位时间(1秒)内变化的次数。若在一定,学 海 无 涯 时间内计得这个周期信号变化的次数为N,则其频率可表达为: f N (1) T 电子技术器可以严格按公式(1)所表达的频率的定义进行测频,其原理方框 图如图1所示:,图1 测频原理图 首先,把被测信号(以正弦波为例)通过放大整形电路变成脉

7、冲(实际上变 成方波即可)其重复频率等于被测频率 fx ,然后将它加到闸门的一个输入端。闸 门通过门控信号来控制开、闭时间,只有在闸门开通时间T内,被计数的脉冲 才能通过闸门,被送到十进制电子计数器进行计数。门控信号的时间T是非常 准确的,以它作为时间基准,它由时基发生器提供。时基信号发生器由一个高稳 定的石英振荡器和一系列数字分频器组成,由它输出的标准时间脉冲(时标)去控 制门控电路形成门控信号。比如,时标信号的重复周期为1S,则加到闸门的门控 信号作用时间T及闸门时间亦准确的等于1S,及闸门开通时间为1S,这时若计得 10000个数,则有(1)式知,被测频率 fx 10000Hz 。 从以

8、上讨论可知,电子计数器的测频原理实质上以比较法为基础,它将 fx 和时 基信号频率相比,两个频率相比的结果以数字的形式显示出来。,九、1 .原理框图,溢出信号,clear,latch,时基,2、各模块功能及实现,一.分频模块程序 modulecount(rest,clk,clk_1hz,clk_10hz,clk_100hz,clk_1khz);,放大整形,被测信号,闸门,计数器,阀门控制,时基信号发生器,门控电路,计数器,锁存器,石英振荡,分频器,门控电路,扫描显示系统,七段译码管 显示数据,溢出指示灯,3,4,学 海 无 涯 inputclk,rest; outputregclk_1hz,c

9、lk_10hz,clk_100hz,clk_1khz; reg29: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) begin if(!rest) begin count1=0;count2=0;count3=0;count4=0; clk_1hz=0;clk_10hz=0;clk_100hz=0;clk_1khz=0; end,e

10、lse,begin,if(count1=24000000) begincount1=0;clk_1hz=clk_1hz;end,count1=count1+1;,count2=0;clk_10hz=clk_10hz;end count2=count2+1;,else if(count2=2400000) begin else if(count3=240000),begin,else,count3=0;clk_100hz=clk_100hz;end count3=count3+1;,if(count4=24000) begin else,count4=0;clk_1khz=clk_1khz;en

11、d count4=count4+1;,end end 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;,5,output output reg,gate_out1,clk_latch,clk_clear; reg2:1ff; gate

12、_out1,clk_latch,clk_clear,gate;,reg4:1count; initialbegingate_out1=0;ff=0;clk_latch=0;clk_clear=0;gate=0;count=0;end always(posedge clk_1khz) begin if(!rest) begingate_out1=0; ff=2b00;end elsebegin if(key1=1 ff=2b01;end elseif(key1=0end,学 海 无 涯,if(key1=0end,else gate=clk_1khz;ff=2b11;end else end en

13、d,/ always (posedge gate) begin count=count+1; if (count=9) begin gate_out1=1;clk_clear=0;clk_latch=0;end else if (count=11) begin gate_out1=0;clk_clear=0;clk_latch=1;end else if (count=13) begin gate_out1=0;clk_clear=1;clk_latch=0;count=0;end else begin gate_out1=0;clk_clear=0;clk_latch=0;end end e

14、ndmodule 仿真图,仿真模块,6,学 海 无 涯,三, 计数器程序,7,modulecounter(rest,start,clk_in,cnt1,cnt2,cnt3,cnt4,cnt5,cnt6,yichu,clk_clear); inputrest,start,clk_in,clk_clear; outputyichu; regyichu; outputreg4:1cnt1,cnt2,cnt3,cnt4,cnt5,cnt6; initial begin yichu=1; cnt1=4b0000;cnt2=4b0000;cnt3=4b0000;cnt4=4b0000; cnt5=4b00

15、00; cnt6=4b0000; end,8,学 海 无 涯,),always(posedge clk_in begin if(!rest) begin,cnt1=4b0000;cnt2=4b0000;cnt3=4b0000; cnt4=4b0000;cnt5=4b0000;cnt6=4b0000;,else,end begin,if(clk_clear=1) begin cnt1=4b0000;cnt2=4b0000;cnt3=4b0000; cnt4=4b0000;cnt5=4b0000;cnt6=4b0000;yichu=1; end,else,if(start=1),begin if(cnt6=4b1001) end,9,学 海 无 涯 else if(cnt4=4b1001) end,else,if(cnt1=4b1001) begin,cnt1=4b0000;cnt2=cnt2+4b0001;cnt3=cnt3; cnt4=cnt4;cnt5=cnt5;cnt6=cnt6; end,else,begin,cnt1=cnt1+4b0001;cnt2=cnt2;cnt3=cnt3; cnt4=cnt4;cnt5=cnt5;cnt6=cnt6; end end

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 其它办公文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号