基于FPGA的verilog频率计设计
基于FPGA的数字频率计的设计

Abstract:The frequency meter with digital frequency meter is directly in the decimal to display the measured signal of the frequency of a measuring instrument. This design in CPLD device with Verilog HDL on its digital frequency meter frequency measurement system, to be able to use the decimal digital display measured the frequency of the signal, able to measure the sine wave, square wave, triangle wave and the frequency of the signal, but also to other a variety of physical quantity measurement. The advantages of small size, high reliability, low power consumption characteristics. Digital frequency plan is a computer, communication equipment, audio video in scientific research production field indispensable measuring instrument. Based on frequency measurement principle and FPGA design thought, this paper presents a new digital frequencymeasurement system, the design of the system Verilog HDL language, using the top-down design thought, system function will take according to the division of the step by step a hierarchical design method. In the specific implementation, with FPGA for central processor to be measured frequency signal sampling period, by calling the macro Quartus II module occupies emptiescompared calculation.
FPGA四位频率计设计Verilog语言实现

FPGA四位频率计设计Verilog语言实现设计任务:用混合设计的方法设计一个4位频率计,主要设计模块为测频控制器、计数器、锁存器、译码器,显示器为7段LED显示管。
并合理选择实验模式,进行下载测试。
//计数器模块modulejishu(clk,zamen,fuwei,jieguo1,jieguo2,jieguo3,jieguo4);inputclk;inputzamen;inputfuwei;output[3:0]jieguo1,jieguo2,jieguo3,jieguo4;reg[3:0]jieguo1,jieguo2,jieguo3,jieguo4;always @(posedgeclk)if(fuwei)beginjieguo1<=4'b0000;jieguo2<=4'b0000;jieguo3<=4'b0000;jieguo4<=4'b0000;endelse if(zamen) //4个if完成4位计数器的进位beginif(jieguo1==4'b1001)begin jieguo1<=4'b0000;jieguo2<=jieguo2+1;if(jieguo2==4'b1001)begin jieguo2<=4'b0000;jieguo3<=jieguo3+1;if(jieguo3==4'b1001)begin jieguo3<=4'b0000;jieguo4<=jieguo4+1;if(jieguo4==4'b1001)jieguo4<=4'b0000;endendendelsejieguo1<=jieguo1+1;endendmodulemodule DECL7S(A,LED7S);input[3:0]A;output[6:0]LED7S;reg[6:0]LED7S;always@(A)begincase(A)4'b0000: LED7S<=7'b0111111;4'b0001: LED7S<=7'b0000110;4'b0010: LED7S<=7'b1011011;4'b0011: LED7S<=7'b1001111;4'b0100: LED7S<=7'b1100110;4'b0101: LED7S<=7'b1101101;4'b0110: LED7S<=7'b1111101;4'b0111: LED7S<=7'b0000111;4'b1000: LED7S<=7'b1111111;4'b1001: LED7S<=7'b1101111;4'b1010: LED7S<=7'b1110111;4'b1011: LED7S<=7'b1111100;4'b1100: LED7S<=7'b0111001;4'b1101: LED7S<=7'b1011110;4'b1110: LED7S<=7'b1111001;4'b1111: LED7S<=7'b1110001; default:LED7S<=7'b0111111; endcaseendendmodulemodulecepin(CLKK,CNT_EN,RST_CNT,LOAD);input CLKK;output CNT_EN,RST_CNT,LOAD;wire CNT_EN,LOAD;reg RST_CNT,JICUN;always @(posedge CLKK)//两个always语句块实现测频功能JICUN<=~JICUN;always @(CLKK or JICUN)beginif(CLKK==1'b0 & JICUN==1'b0) RST_CNT<=1'b1;else RST_CNT<=1'b0;endassign LOAD=~JICUN;assign CNT_EN=JICUN;endmodule//锁存器module suocun(result1,result2,result3,result4,data1,data2,data3,data4,kaiguan);output[3:0]data1,data2,data3,data4;input[3:0]result1,result2,result3,result4;inputkaiguan;reg[3:0]data1,data2,data3,data4;always @(posedgekaiguan)if(kaiguan)begindata1<=result1;data2<=result2;data3<=result3;data4<=result4;endendmodule。
基于fpga的频率计设计与实现本科毕设论文

唐山学院毕业设计设计题目:基于FPGA的数字频率计设计与实现系别:信息工程系班级:10应用电子技术(1)班*名:******师:***2013年6月10 日基于FPGA的数字频率计设计与实现摘要在电子设计领域,随着计算机技术、大规模集成电路技术、EDA(Electronics Design Automation)技术的发展和可编程逻辑器件的广泛应用,传统的自下而上的数字电路设计方法、工具、器件已远远落后于当今技术的发展。
基于EDA技术和硬件描述语言的自上而下的设计技术正在承担起越来越多的数字系统设计任务。
本课题的数字频率计设计,采用自上向下的设计方法。
本文首先综述了EDA 技术的概况,接着介绍硬件描述语言VHDL,可编程器件FPGA及频率测量的一般原理;然后介绍数字频率计的系统设计,频率计各系统模块的VHDL语言实现,最后利用QUARTUS Ⅱ集成开发环境进行编辑、综合、波形仿真,并下载到CPLD器件中,经实际电路测试,仿真和实验结果表明,此频率计具有较高的实用性和可靠性。
关键字:EDA FPGA 数字频率计VHDL语言Design and Implementation ofDigital Frequency Meter Based on FPGAAbstractIn the field of electronic design, with the development of computer technology, LSI technology, EDA (Electronics Design Automation)technology and wide application of programmable logic devices, the traditional bottom-up digital circuit design methods, tools, devices have far behind today's technology. The top-down design techniques based on EDA technology and hardware description language are taking on more and more digital system design task.The topic digital frequency meter design uses top-down design approach. First, this paper summarizes the overview of EDA technology, then it describes the hardware description language which is called VHDL, FPGA programmable device and the general principles of frequency measurement; then it introduces the system design of digital frequency meter, and the realization of frequency meter each system module VHDL. Finally using QUARTUSⅡ integrated development environment edits, synthesizes, and simulates, and download to the CPLD devices, by using the actual circuit testing, simulation and experimental results show that this frequency meter is high availability and reliability.Keywords:EDA; FPGA;digital frequency meter;VHDL language目录1 引言 (1)2 硬件描述语言(HDL) (2)2.1VHDL语言简介 (2)2.2 利用VHDL语言开发的优缺点 (3)3 电子设计自动化(EDA)发展概述 (4)3.1 EDA的简介 (4)3.2 EDA的发展史 (4)3.3基于EDA的FPGA/CPLD开发 (5)3.3.1 FPGA/CPLD的简介 (6)3.3.2 用FPGA/CPLD进行开发的优缺点 (7)4 频率计的测量及方案选择 (9)4.1 数字频率计工作原理概述 (9)4.2 测频原理及误差分析 (10)4.2.1常用测频方案 (10)4.2.2 等精度测频原理 (10)4.2.3误差分析 (11)5 数字频率计的系统设计与功能仿真 (13)5.1 系统的总体设计 (13)5.2 频率计模块 (14)5.2.1 测频控制模块 (14)5.2.2 锁存器模块 (15)5.2.3 十进制计数器模块 (16)5.3 显示模块 (17)5.3.1显示模块设计 (17)5.3.2译码器模块 (18)5.3.3四位二进制数与十六位二进制数转换的源程序 (19)5.3.4十六位二进制数与四位二进制数转换的源程序 (19)5.3.5四位二进制数与段码转换的源程序 (21)6 整形电路设计 (22)6.1 555定时器的工作原理 (22)6.2 施密特触发器 (23)6.2.1 电路结构 (23)6.2.2 工作原理 (23)6.3波形的整形 (24)7 软件测试及硬件下载 (25)7.1 QuartusII软件简介 (25)7.2 QuartusII的设计流程 (25)7.3 QuartusII软件的使用方法 (26)7.3.1 创建底层模块 (26)7.3.2 构建顶层模块 (30)7.4 下载及硬件实现 (32)8 结论 (34)谢辞 (35)参考文献 (36)附录Ⅰ频率计顶层文件 (38)附录Ⅱ源程序 (39)1引言21世纪人类将全面进入信息化社会,对微电子信息技术和微电子VLSI基础技术将不断提出更高的发展要求,微电子技术仍将继续是21世纪若干年代中最为重要的和最有活力的高科技领域之一。
基于FPGA的等精度频率计的设计毕业设计论文

毕业论文声明本人郑重声明:1.此毕业论文是本人在指导教师指导下独立进行研究取得的成果。
除了特别加以标注地方外,本文不包含他人或其它机构已经发表或撰写过的研究成果。
对本文研究做出重要贡献的个人与集体均已在文中作了明确标明。
本人完全意识到本声明的法律结果由本人承担。
2.本人完全了解学校、学院有关保留、使用学位论文的规定,同意学校与学院保留并向国家有关部门或机构送交此论文的复印件和电子版,允许此文被查阅和借阅。
本人授权大学学院可以将此文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本文。
3.若在大学学院毕业论文审查小组复审中,发现本文有抄袭,一切后果均由本人承担,与毕业论文指导老师无关。
4.本人所呈交的毕业论文,是在指导老师的指导下独立进行研究所取得的成果。
论文中凡引用他人已经发布或未发表的成果、数据、观点等,均已明确注明出处。
论文中已经注明引用的内容外,不包含任何其他个人或集体已经发表或撰写过的研究成果。
对本文的研究成果做出重要贡献的个人和集体,均已在论文中已明确的方式标明。
学位论文作者(签名):年月关于毕业论文使用授权的声明本人在指导老师的指导下所完成的论文及相关的资料(包括图纸、实验记录、原始数据、实物照片、图片、录音带、设计手稿等),知识产权归属华北电力大学。
本人完全了解大学有关保存,使用毕业论文的规定。
同意学校保存或向国家有关部门或机构送交论文的纸质版或电子版,允许论文被查阅或借阅。
本人授权大学可以将本毕业论文的全部或部分内容编入有关数据库进行检索,可以采用任何复制手段保存或编汇本毕业论文。
如果发表相关成果,一定征得指导教师同意,且第一署名单位为大学。
本人毕业后使用毕业论文或与该论文直接相关的学术论文或成果时,第一署名单位仍然为大学。
本人完全了解大学关于收集、保存、使用学位论文的规定,同意如下各项内容:按照学校要求提交学位论文的印刷本和电子版本;学校有权保存学位论文的印刷本和电子版,并采用影印、缩印、扫描、数字化或其它手段保存或汇编本学位论文;学校有权提供目录检索以及提供本学位论文全文或者部分的阅览服务;学校有权按有关规定向国家有关部门或者机构送交论文的复印件和电子版,允许论文被查阅和借阅。
基于FPGA的数字频率计的设计与实现

基于FPGA的频率计的设计和实现金鹏湖北理工学院湖北省黄石市 435000摘要频率计是一种重要的电子测量仪器,本文主要针对使用FPGA(Field Programmable Gate Array)制作一个简单的频率计。
以FPGA(Field Programmable Gate Array)为核心,基于Verilog HDL语言来设计与实现数字频率计。
该频率计具有体积小,性能稳定的特点。
使用FPGA可以顺利设计和实现数字频率计。
关键词:FPGA,频率计,Verilog HDLDesign and implementation of FPGA based on the frequency meterJin pengHubei institute of technology Huangshi city of hubei provinceAbstractFrequency meter is an important electronic measuring instruments, and this article is focused on using FPGA (Field Programmable Gate Array) produced a simple frequency meter. FPGA (Field Programmable Gate Array), design and realization of the digital frequency meter based on Verilog HDL language. The frequency meter has a small size, stable performance characteristics. FPGA can successfully design and implement digital frequency meter.Key words: FPGA, frequency meter, Verilog HDL1总体方案1.1引言频率计又称为频率计数器,频率计最基本的工作原理为:当被测信号在特定时间段T内的周期个数为N时,则被测信号的频率f=N/T。
MHz等精度频率计设计基于VerilogHDL

姓名:郑中权班级:电子1班 数电课设报告江苏科技大学2017/10/12100MHz等精度频率计设计(基于Verilog HDL)一、设计要求:提供一个幅值为10mV ~ 1 V,频率为 1 ~ 100MHz的正弦信号,需测试以下指标:1.频率:测频范围 1Hz ~ 100MHz,测频精度为测频全域内相对误差恒为百万分之一。
2.占空比:测试精度 1% ~ 99%3.相位差:测试两个同频率的信号之间的相位差,测试范围 0 ~ 360二、设计分析使用FPGA数字信号处理方法,首先需要将正弦信号转换成可读取的数字方波信号,再经过FPGA设计计算得出所需测量值。
三、模电部分首先选择比较器,对于 100 MHz 信号,比较器灵敏度需要达到5ns内,TI公司的LTV3501灵敏度为4.5ns,符合要求由TLV3501数据手册得知:当频率低于 50MHz 的时候,正弦波的峰峰值需大于20mV,频率高于50MHz时,峰峰值需大于 1V。
然后需要选择放大器,当正弦波幅值为 10mV时,放大倍数需大于35。
方法通过二级放大,一级用OPA847放大20倍,二级用OPA675放大8倍,得到总放大倍数160的正弦波。
经转换后的输出电压符合TTL电平要求,可以被识别出0和1。
四、数电部分开发板:Cyclone IV E: EP4CE6E22C8板载时钟为 50MHz,带4个按键和一个复位键(按键按下为0,抬起为1),四个七段数码管(共阳),FPGA的引脚可由杜邦线引出。
设计思路:测量频率:输入一个100MHz的基准频率,由计数器CNT1来计算基准频率的上升沿个数,即周期数。
输入一个被测信号,它由计数器CNT2来测量周期数。
两个信号在同一个使能信号EN(使能信号时间为1~2s)下开始计数,计数完后,存储计数结果,由(CNT1 * 10)可以算出具体的计数时间(单位ns),再由((CNT1 * 10ns)/CNT2 )*10^9可算得被测信号频率,单位Hz。
基于 fpga 的数字频率计的设计与实现

基于 FPGA 的数字频率计的设计与实现随着现代科技的不断发展,我们对数字信号处理的需求也越来越高。
数字频率计作为一种用来测量信号频率的仪器,在许多领域有着广泛的应用,包括无线通信、雷达系统、声音处理等。
在这些应用中,精确、高速的频率测量常常是至关重要的。
而基于 FPGA 的数字频率计正是利用了 FPGA 高速并行处理的特点,能够实现高速、精确的频率计算,因此受到了广泛关注。
本文将从设计思路、硬件实现和软件调试三个方面,对基于 FPGA 的数字频率计的设计与实现进行详细讲解。
一、设计思路1.1 频率计原理数字频率计的基本原理是通过对信号进行数字化,然后用计数器来记录单位时间内信号的周期数,最后根据计数器的数值和单位时间来计算信号的频率。
在 FPGA 中,可以通过硬件逻辑来实现这一过程,从而实现高速的频率计算。
1.2 FPGA 的优势FPGA 作为一种可编程逻辑器件,具有并行处理能力强、时钟频率高、资源丰富等优点。
这些特点使得 FPGA 在数字频率计的实现中具有天然的优势,能够实现高速、精确的频率测量。
1.3 设计方案在设计数字频率计时,可以采用过采样的方法,即对输入信号进行过取样,得到更高精度的测量结果。
还可以结合 PLL 锁相环等技术,对输入信号进行同步、滤波处理,提高频率测量的准确性和稳定性。
二、硬件实现2.1 信号采集在 FPGA 中,通常采用外部 ADC 转换芯片来对输入信号进行模数转换。
通过合理的采样率和分辨率设置,可以保证对输入信号进行精确的数字化处理。
2.2 计数器设计频率计最关键的部分就是计数器的设计。
在 FPGA 中,可以利用计数器模块对输入信号进行计数,并将计数结果送入逻辑单元进行进一步的处理。
2.3 频率计算通过对计数结果进行适当的处理和归一化,可以得到最终的信号频率。
在这一过程中,需要注意处理溢出、误差校正等问题,以保证频率测量的准确性和稳定性。
三、软件调试3.1 FPGA 开发环境在进行基于 FPGA 的数字频率计设计时,可以选择常见的开发工具,例如 Xilinx Vivado 或 Quartus II 等。
基于verilog语言的数字频率计设计

基于verilog语言的数字频率计设计以下是一种基于Verilog语言的数字频率计设计:```verilogmodule frequency_counterinput clk, //输入时钟input reset, //复位信号input enable, //启用信号input signal_in, //输入信号output [31:0] frequency //输出频率reg [31:0] count; //计数器if (reset) begincount <= 0;end else if (enable) beginif (signal_in) begincount <= count + 1;endendendassign frequency = count; //将计数器值赋给输出端口endmodule```在此设计中,我们使用一个32位的计数器(count)来计算输入信号(signal_in)的高电平脉冲数。
输入时钟(clk)用于同步计数器的操作。
复位信号(reset)用于将计数器复位为0。
启用信号(enable)用于控制计数器的启用与禁用。
当reset为高电平时,计数器会被复位为0。
当enable为高电平时,计数器会逐渐增加,直到输入信号(signal_in)为低电平。
此时,计数器的值会保持不变。
最终,计数器的值会通过输出端口frequency输出。
在这个设计中,frequency是一个32位的输出端口,表示输入信号的高电平脉冲数。
这个设计可以通过Verilog仿真工具进行仿真,并且可以综合到FPGA芯片中进行硬件实现。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
电子科技大学(基于FPGA的频率计设计)题目:简易频率计的设计指导教师:********学号:**********专业:光电学院一专业摘要本文主要介绍了基于FPGA 的简易多量程频率计的设计,使用硬件描述语言verilog来实现对硬件的控制,在软件ISE上实现编程的编译综合,在系统时钟48Mhz下可正常工作。
该数字频率计采用测频的方法,能准确的测量频率在10Hz到100MHz之间的信号。
使用ModelSim仿真软件对Verilog程序做了仿真,并完成了综合布局布线,通过ISE下载到Spartan3A开发板上完成测试。
关键词:FPGA ,verilog,ISE,测频方法AbstractThis paper mainly introduces the simple more range based on FPGA design of frequency meter,Use hardware description language verilog to realize the control of hardware,In the software realize the compilation of the programming ISE on comprehensive,In the system clock can work normally under 48 Mhz。
The digital frequency meter frequency measurement method used, can accurate measurement frequency in 10 Hz to 100 MHz of signals between。
Use ModelSim simulation software Verilog program to do the simulation, and completed the overall layout wiring,Through the ISE downloaded to Spartan3A development board complete test。
Keywords: FPGA, Verilog, ISE, F requency M easurement目录第一章测量原理与方法1.1测频方法1.2测周方法1.3等精度测量法1.4放大整形电路1.5时基信号产生第二章任务要求第三章各模块功能及介绍3.1分频器3.2闸门选择器3.3频率计数器3.4锁存器3.5扫描显示控制译码系统第四章顶层电路及总体仿真4.1顶层电路4.2总体仿真结果4.3测试结果第一章:测量原理与方法所谓“频率”,就是周期性信号在单位时间(秒)内变化的次数。
若在一定的时间间隔T内计数,计得某周期性信号的重复变化次数为N,则该信号的频率可表达为:f = N / T所以测量频率就要分别知道N和T的值,由此,测量频率的方法一般有三种:测频方法、测周方法和等精度测量。
1.1测频方法这种方法即已知时基信号(频率或周期确定)做门控信号,T为已知量,然后在门控信号有效的时间段内进行输入脉冲的计数,原理图如下图所示:首先,被测信号①(以正弦波为例)经过放大整形后转变成方波脉冲②,其重复频率等于被测信号频率。
把方波脉冲②加到闸门的输入端。
由一个高稳定的石英振荡器和一系列数字分频器组成了时基信号发生器,它输出时间基准(或频率基准)信号③去控制门控电路形成门控信号④,门控信号的作用时间T是非常准确的(由石英振荡器决定)。
门控信号控制闸门的开与闭,只有在闸门开通的时间内,方波脉冲②才能通过闸门成为被计数的脉冲⑤由计数器计数。
闸门开通的时间称为闸门时间,其长度等于门控信号作用时间T。
比如,时间基准信号的重复周期为1S,加到闸门的门控信号作用时间T亦准确地等于1S,即闸门的开通时间——“闸门时间”为1S。
在这一段时间内,若计数器计得N=100000个数,根据公式f = N / T,那么被测频率就是100000Hz。
如果计数式频率计的显示器单位为“KHz”,则显示100.000KHz,即小数点定位在第三位。
不难设想,若将闸门时间设为T=0.1S,则计数值为10000,这时,显示器的小数点只要根据闸门时间T的改变也随之自动往右移动一位(自动定位),那么,显示的结果为100.00Khz。
在计数式数字频率计中,通过选择不同的闸门时间,可以改变频率计的测量范围和测量精度。
1.2测周方法测周方法即:被测信号(频率或周期待测)做门控信号,T为未知量,做门控信号T,然后在门控信号有效的时间段内对时基信号脉冲计数,原理图如下图所示:计数器测周的基本原理刚好与测频相反,即由被测信号控制主门开门,而用时标脉冲进行计数,所以实质上也是一种比较测量方法。
1.3等精度测量法等精度测量法的核心思想是通过闸门信号与被测信号同步,将闸门时间τ控制为被测信号周期长度的整数倍。
测量时,先打开预置闸门,当检测到被测信号脉冲沿到达时,标准信号时钟开始计数。
预置闸门关闭时,标准信号并不立即停止计数,而是等检测到被测信号脉冲沿到达时才停止,完成被测信号整数个周期的测量。
测量的实际闸门时间可能会与预置闸门时间不完全相同,但最大差值不会超过被测信号的一个周期。
在等精度测量法中,相对误差与被测信号本身的频率特性无关,即对整个测量域而言,测量精度相等,因而称之为“等精度测量”。
标准信号的计数值越大则测量相对误差越小,即提高门限时间τ和标准信号频率可以提高测量精度。
在精度不变的情况下,提高标准信号频率可以缩短门限时间,提高测量速度。
原理图如下:1.4放大整形电路当输入信号为0.5V时,仿真放大整形后的输出结果如下图示图1-6 放大整形电路仿真结果(一)当输入信号为3V时,仿真放大整形后的输出结果如下图示:当输入信号为10V时,仿真放大整形后的输出结果如下图示:图1-6 放大整形电路仿真结果(三)1.5时基信号的产生图1-7 时基信号产生电路第二章:任务要求设计一个计数式频率计,其频率测量范围为10Hz~100MHz,测量结果用6只数码管显示。
有三个带锁按键开关(任何时候都只能有一个被按下)被用来选择1S、0.1S和0.01S三个闸门时间中的一个。
有一个按钮开关用来使频率计复位。
有两只LED,一只用来显示闸门的开与闭,另一只当计数器溢出时做溢出指示。
第三章:各功能模块的基本介绍3.1分频器由于晶体振荡器提供的为48M的时钟,而在整个频率计里将用到周期为2s、0.2s和0.02s的闸门信号,还有译码显示的扫描信号1KHz ,所以我们在此模块先分频产生1Hz、10Hz、100Hz、1KHz四个分频信号,以留作其它模块用。
分频分别采用4个计数器来实现,当计到一定的值时输出的分频信号翻转,最后分别获得4个分频输出,分频器模块如下图所示:此模块的复位为同步方式,当复位有效时,输出将清零。
源程序如下:module clk_div(reset, clk,clk_1hz, clk_10hz, clk_100hz,clk_1khz);input reset,clk;output reg clk_1hz,clk_10hz,clk_100hz,clk_1khz;reg [29:0] counter1,counter2,counter3,counter4; //分频计数值always @(posedge clk or negedge reset)beginif(!reset)begincounter1<=0;counter2<=0;counter3<=0;counter4<=0;clk_1hz<=0;clk_10hz<=0;clk_100hz<=0;clk_1khz<=0;end else beginif(counter1==2400000)begin counter1<=0;clk_1hz<=~clk_1hz; endelse begin counter1<=counter1+1; endif(counter2==240000) begin counter2<=0;clk_10hz<=~clk_10hz;end elsebegin counter2<=counter2+1; endif(counter3==24000)begin counter3<=0;clk_100hz<=~clk_100hz; endelsebegin counter3<=counter3+1; endif(counter4==2400)begin counter4<=0;clk_1khz<=~clk_1khz; endelsebegin counter4<=counter4+1; endendendendmodule仿真图如下所示:3.2闸门选择器:该模块主要实现对闸门的选择功能,通过输入的门选信号来确定输出的闸门,生成的模块如下图所示:具体实现方法如下:当三个门选信号中有且仅有门选信号gate_ch1有效时,reg变量gate为clk_1hz ,当三个门选信号中有且仅有门选信号gate_ch2有效时,reg变量gate为clk_10hz;当三个门选信号中有且仅有门选信号gate_ch3有效时,reg变量gate为clk_100hz。
reg变量gate再二分频则是输出的闸门信号gate_out(dot 为标记信号,标记了当前闸门的选择情况)。
如果同时有两个或以上的门另外输出的译码扫描信号为clk_1khz ,供后面的扫描译码模块使用程序如下:module gate_sel(reset,gate_ch1,gate_ch2,gate_ch3,clk_1hz,clk_10hz,clk_100hz,clk_1khz,gate_outdot);input reset,gate_ch1,gate_ch2,gate_ch3,clk_1hz,clk_10hz,clk_100hz,clk_1khz;output reg gate_out;output reg [2:0]dot;always @(posedge clk_1khz or negedge reset)beginif(!reset)begin gate_out<=0;dot<=3'b111;endelsebeginif((gate_ch1==0)&&(gate_ch2==1)&&(gate_ch3==1))begin gate_out<=clk_1hz; dot<=3'b011;endelse if((gate_ch1==1)&&(gate_ch2==0)&&(gate_ch3==1))begin gate_out<=clk_10hz;dot<=3'b010;endelse if((gate_ch1==1)&&(gate_ch2==1)&&(gate_ch3==0))begin gate_out<=clk_100hz;dot<=3'b001;endelsebegin gate_out<=0;dot<=3'b111;endendendendmodule3.3频率计计数频率计数器的功能为在输入的闸门信号的控制下对输入脉冲时行计数,它是一个7拉的模十计数器。