Verilog HDL数字频率计

合集下载

用verilog HDL设计的4位频率计

用verilog HDL设计的4位频率计

简单4位数字频率计设计一、 设计要求(1)、利用Verilog HDL 语言行为描述方法,设计一个简单的4位数字频率计; (2)、要求输入标准时钟信号频率为1MHz ,系统可计数频率范围为1Hz~9999Hz ; (3)、系统具有复位信号,且当计数频率发生溢出时能够给出指示信号,计数的频率通过4个共阴数码管进行显示(动态扫描显示)。

二、 系统结构框图4位数字频率计系统结构框图根据设计要求,输入系统的标准时钟信号要先经过分频后得到一个周期为2s 占空比50%的信号,用来对输入信号采样,得到采样信号GA TED_CLK ;为了能够控制计数模块对采样的信号进行正常计数及保存计数后的频率,这要求,要在计数器刚好完成计数后立即将数据输出给显示部分进行显示,并且要为下次计数做好准备,因此数据信号处理部分还要有产生控制计数器的两个信号LOAD 和COUNTER_CLR ,LOAD 信号控制计数完成后的数据及时输出给显示,COUNTER_CLR 信号控制计数器清零;计数模块就是完成对采样信号的计数,并当计数发生溢出时产生溢出信号FLOW_UP ;显示控制模块要完成将计数模块输入的信号进行译码显示。

三、 信号描述测试信号采样原理:Signal for testTo displaySignal for testGA TED_CLK 、LOAD 、COUNTER_CLR 信号的关系:COUNTER_CLRGATED_CLKLOAD四、 Verilog 程序各子模块verilog 程序:(1)信号处理模块_verilog : moduleFREQUENCY_COUNTROL_BLOCK(GATED_CLK,LOAD,COUNTER_CLR,CLK_IN,SIGNA L_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;endelse if(cn==1000000)begincn<=0;DIVIDE_CLK<=~DIVIDE_CLK;endelsecn<=cn+1;end//频率计数控制信号的产生:产生LOAD信号和COUNTER_CLR信号always @(posedge SIGNAL_TEST)beginA1<=~DIVIDE_CLK;endalways @(posedge SIGNAL_TEST)beginA2=A1;endalways @(A1 or A2)beginLOAD=A1&&(!A2);endalways @(posedge SIGNAL_TEST)COUNTER_CLR=LOAD;//产生驱动计数模块的信号GATED_CLK,也就是被计数模块检测的信号assign GATED_CLK=SIGNAL_TEST&DIVIDE_CLK;endmodule(2)、计数器模块:moduleFREQUENCY_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[B_SIZE+3:0] bcd; //转换后的BCD码的位数要比二进制多4位reg[B_SIZE-1:0] binary;reg[B_SIZE-1:0] bin;reg[B_SIZE+3:0] result;//计数器完成计数得到二进制表示的频率数值always @(CLOCK_IN or RESET or LOAD or COUNTER_CLR)beginif(RESET|COUNTER_CLR)beginTEMP<=0;FLOW_UP<=0;endelse if(LOAD)binary<=TEMP;else if(TEMP>9999)beginFLOW_UP<=1;binary<=9999;endelseif(CLOCK_IN)TEMP<=TEMP+1;end//将二进制表示(或十六进制表示)的数转换为BCD码的形式,便于数码管译码显示always @(binary or RESET)beginbin=binary;result=0;if(RESET)bcd<=0;elsebeginrepeat(B_SIZE-1)beginresult[0]=bin[B_SIZE-1];if(result[3:0]>4)result[3:0]=result[3:0]+4'd3;if(result[7:4]>4)result[7:4]=result[7:4]+4'd3;if(result[11:8]>4)result[11:8]=result[11:8]+4'd3;if(result[15:12]>4)result[15:12]=result[15:12]+4'd3;if(result[19:16]>4)result[19:16]=result[19:16]+4'd3;result=result<<1;bin=bin<<1;endresult[0]=bin[B_SIZE-1];bcd<=result;endendassign COUT=bcd[15:0];endmodule(3)信号显示处理:module FREQUENCY_DISPL Y_BLOCK(DOUT,DCLK_IN,RESET,CDIN);output[10:0] DOUT;input[15:0] CDIN;input DCLK_IN;input RESET;reg[10:0] DOUT;reg[3:0] Temp1;reg[1:0] cn;always @(posedge DCLK_IN) //设置成动态扫描beginif(RESET)cn<=0;elsebegincn<=cn+1;case(cn)2'b00: begin DOUT[10:7]<=4'b0001; Temp1<=CDIN[3:0];end2'b01: begin DOUT[10:7]<=4'b0010; Temp1<=CDIN[7:4];end2'b10: begin DOUT[10:7]<=4'b0100; Temp1<=CDIN[11:8];end2'b11: begin DOUT[10:7]<=4'b1000; Temp1<=CDIN[15:12];endendcaseendendalways @(Temp1) //译码显示begincase(Temp1)4'b0000: DOUT[6:0]<=7'b0111111; //3fh=04'b0001: DOUT[6:0]<=7'b0000110; //06h=14'b0010: DOUT[6:0]<=7'b1010110; //56h=24'b0011: DOUT[6:0]<=7'b1001111; //4fh=34'b0100: DOUT[6:0]<=7'b1100110; //66h=44'b0101: DOUT[6:0]<=7'b1101101; //6dh=54'b0110: DOUT[6:0]<=7'b1111101; //7dh=64'b0111: DOUT[6:0]<=7'b0000111; //07h=74'b1000: DOUT[6:0]<=7'b1111111; //7fh=84'b1001: DOUT[6:0]<=7'b1101111; //6fh=9default: DOUT[6:0]<=7'b0111111; //3fhendcaseendendmodule顶层verilog程序:moduleFREQUENCY_COUNTER_DISPL Y_BLOCK(DOUT,FLOW_UP,CLK,TEST_CLK_IN,RESET) ;output[10:0] DOUT;output FLOW_UP;input CLK;input TEST_CLK_IN;input RESET;wire gated_clk,load,counter_clr;wire[15:0] cout_cdin;FREQUENCY_COUNTROL_BLOCKu1(.GATED_CLK(gated_clk),.LOAD(load),.COUNTER_CLR(counter_clr),.CLK_IN(CLK),.SIG NAL_TEST(TEST_CLK_IN),.RESET(RESET));FREQUENCY_COUNTER_BLOCKu2(.COUT(cout_cdin),.FLOW_UP(FLOW_UP),.CLOCK_IN(gated_clk),.RESET(RESET),.LOA D(load),.COUNTER_CLR(counter_clr));FREQUENCY_DISPL Y_BLOCKu3(.DOUT(DOUT),.DCLK_IN(CLK),.RESET(RESET),.CDIN(cout_cdin));endmodule五、仿真结果分析仿真结果如图所示,输入标准时钟频率为1MHz,经过分频后变成频率为0.5Hz的信号,将其与测试信号相与得到采样信号GATED_CLK,同时利用测试信号和0.5Hz的分频信号可以产生LOAD信号和COUNTER_CLR信号,它们和采样信号的关系在图上可以清楚的看出。

MHz等精度频率计设计基于VerilogHDL

MHz等精度频率计设计基于VerilogHDL

M H z等精度频率计设计基于V e r i l o g H D L Standardization of sany group #QS8QHH-HHGX8Q8-GNHHJ8-HHMHGN#姓名:郑中权班级:电子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灵敏度为,符合要求由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。

基于Verilog的数字频率计的设计(包含代码及仿真)

基于Verilog的数字频率计的设计(包含代码及仿真)

一、实验名称数字频率计的设计二、实验地点211楼303三、实验目的和任务(1) 了解数字电路设计的基本特点(2) 了解数字频率计电路的基本原理(3) 基本掌握ISE 软件的使用(设计输入、仿真、实现)(4) 了解可编程逻辑器件(FPGA )的一般情况(5) 基本掌握HDL 的使用四、实验内容(1) 设计出符合设计要求的解决方案(2) 设计出单元电路(3) 利用EDA 软件对各单元电路及整体电路进行仿真(4)利用EDA 软件在ELB 电子课程设计实验板实现设计(5) 观察实验结果五、项目需用仪器设备名称以及所需主要元器件PC 机、EDA教学实验系统一台,带有(SPARTAN -3A XC3S200A芯片,LED 管, 七段数码管等)的实验板一块, 跳线、下载电缆一根,函数发生器。

六、实验任务与要求频率测量范围为10Hz~10MHz,用6只数码管以kHz为单位显示测量结果;有三个带锁按键开关(任何时候都只会有一个被按下)用来选择1S、0.1S和0.01S三个闸门时间中的一个;有一个按钮开关用来使频率计复位;有两只LED,一只用来显示闸门的开与闭,另一只当计数器溢出时做溢出指示。

数字频率计的相关技术指标如下:1、位数:测量频率通过LED数码管为六位十进制数显示。

2、测试频率范围为:10HZ-10MHZ。

3、计数器溢出时要有溢出标志over。

4、需要有闸门标志gate。

5、显示工作方式:a、用BCD七段共阳极数码管显示读数,只有在读数不发生跳变时才是正确的结果。

b、采用记忆显示方法,即在一次测试结束时,显示测试结果,此显示值一直保留到下次测量显示数到来,才将上次显示更新。

用第二次测试结果,更新显示值。

6、要求被测输入信号应是符合数字电路要求的脉冲波。

七、verilog设计环境介绍VerilogVerilog HDL是目前应用最为广泛的硬件描述语言.Verilog HDL可以用来进行各种层次的逻辑设计,也可以进数字系统的逻辑综合,仿真验证和时序分析等。

MHz等精度频率计设计基于VerilogHDL

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。

基于verilog语言的数字频率计设计

基于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芯片中进行硬件实现。

基于Verilog的数字频率计的设计包含代码及仿真

基于Verilog的数字频率计的设计包含代码及仿真

一、实验名称数字频率计的设计二、实验地点211楼303三、实验目的和任务(1)了解数字电路设计的基本特点(2)了解数字频率计电路的基本原理(3)基本掌握ISE软件的使用(设计输入、仿真、实现)(4)了解可编程逻辑器件(FPGA )的一般情况(5)基本掌握HDL的使用四、实验内容(1)设计出符合设计要求的解决方案(2)设计出单元电路(3)利用EDA 软件对各单元电路及整体电路进行仿真(4)利用EDA 软件在ELB电子课程设计实验板实现设计(5)观察实验结果五、项目需用仪器设备名称以及所需主要元器件PC机、EDA教学实验系统一台,带有(SPARTAN -3A XC3S200A芯片,LED 管 , 七段数码管等)的实验板一块 , 跳线、下载电缆一根,函数发生器。

六、实验任务与要求频率测量范围为10Hz~10MHz,用6只数码管以kHz为单位显示测量结果;有三个带锁按键开关(任何时候都只会有一个被按下)用来选择1S、0.1S和0.01S三个闸门时间中的一个;有一个按钮开关用来使频率计复位;有两只LED,一只用来显示闸门的开与闭,另一只当计数器溢出时做溢出指示。

数字频率计的相关技术指标如下:1、位数:测量频率通过LED数码管为六位十进制数显示。

2、测试频率范围为:10HZ-10MHZ。

3、计数器溢出时要有溢出标志over。

4、需要有闸门标志gate。

5、显示工作方式:a、用BCD七段共阳极数码管显示读数,只有在读数不发生跳变时才是正确的结果。

b、采用记忆显示方法,即在一次测试结束时,显示测试结果,此显示值一直保留到下次测量显示数到来,才将上次显示更新。

用第二次测试结果,更新显示值。

6、要求被测输入信号应是符合数字电路要求的脉冲波。

设计环境介绍七、verilog VerilogVerilog HDL是目前应用最为广泛的硬件描述语言.Verilog HDL可以用来进行各种层次的逻辑设计,也可以进数字系统的逻辑综合,仿真验证和时序分析等。

Verilog-数字频率计

Verilog-数字频率计

摘要本文介绍了基于FPGA的数字频率计的设计方法,设计采用硬件描述语言Verilog,在软件开发平台ISE上完成,可以在较高速时钟频率(48MHz)下正常工作。

该数字频率计采用测频的方法,能准确的测量频率在10Hz到100MHz之间的信号。

使用ModelSim仿真软件对Verilog程序做了仿真,并完成了综合布局布线,最终下载到芯片Spartan3A上取得良好测试效果。

关键词:FPGA,Verilog,ISE,测频方法IAbstractThis paper introduces the design method of digital frequency meter based on FPGA,which use hardware description language-Verilog in software development platform ISE and can word in relatively high-speed clock of48MHz.The frequency meter uses the method of frequency measurement,which could accurately measure the frequency of signals between10Hz to100MHz.This system uses the simulation tool-ModelSim to run and debug the Verilog program,and design the circuit placement.A good result can be achieved when the program was burnt on the chip Spartan3A.KeywordsKeywords::FPGA,Verilog,ISE,Frequency MeasurementIIII目录第一章测量原理与方法................................................................................................................................................................................................441.1测频方法.............................................................................................................41.2测周方法.............................................................................................................51.3等精度测量法....................................................................................................51.4放大整形电路....................................................................................................61.5时基信号产生. (7)第二章任务要求..........................................................................................................................................................................................................................88第三章各模块功能及介绍....................................................................................................................................................................................883.1分频器..................................................................................................................84.2闸门选择器........................................................................................................104.3频率计数器........................................................................................................124.4锁存器................................................................................................................144.5扫描显示控制译码系统.. (15)第四章顶层电路及总体仿真............................................................................................................................................................................16164.1顶层电路.. (16)4.2总体仿真结果 (16)4.3测试结果 (19)第一章测量原理与方法所谓“频率”,就是周期性信号在单位时间(秒)内变化的次数。

基于verilog语言的数字频率计设计

基于verilog语言的数字频率计设计

实验五 数字频率计设计一、实验目的1、掌握简单的时序控制电路设计方法;2、进一步掌握复杂数字电路设计中的层次设计方法;3、掌握数字频率计的原理与设计方法;二、硬件、软件要求计算机、EDA 实验箱、MAX+plus II 软件,下载电缆三、实验内容及实验原理1、数字频率计原理:1)系统组成框图如图1.5.1所示:其中,8位七段数码管模块为实验箱上电路模块,电路中有3-8译码器,故位选信号为3位二进制顺序编码;动态扫描显示电路可利用实验三的设计文件;数据寄存器是由32个D 触发器构成,每四个为一组,每组保存一个BCD 码,其时钟信号由测频时序控制模块提供,在本实验中需自行设计;八位十进制计数器模块可利用实验四的设计文件;测频时序控制模块在本实验中需要自行设计;分频器是将输入的800Hz 显示扫描时钟进行分频得到所需的8Hz 时钟,并接至测频时序控制模块,本实验中需自行设计。

2)测频时序控制模块原理:该模块为频率计控制电路的核心,完成各模块的协调工作,按照时钟节拍完成测频功能。

其原理图如图1.5.2所示:8位七段数码管模块动态扫描显示电路 数据 寄存器 八位十进制计数器 测频时序控制 分频器 800Hz 时钟输入 8Hz 时钟输入 fx 被测信号输入clken clken clr clr clk lock lock clk sel2 sel1 sel0 a~g 图1.5.1 频率计组成框图图1.5.2 测频时序控制逻辑电路图其仿真波形如图1.5.3所示:图1.5.3 测频时序控制仿真波形2、设计要求:1)采用原理图或Verilog语言完成各模块的设计。

对本次实验所设计的测频时序控制模块、数据寄存器模块、时钟分频模块进行时序仿真,记录设计文件和仿真波形。

2)频率计顶层文件采用原理图设计,将各功能模块进行连接,并对整个频率计顶层设计进行仿真,最后下载至实验箱,完成实际信号的频率测量,记录顶层文件和仿真结果。

Verilog_HDL_数字频率计

Verilog_HDL_数字频率计

基于Verilog HDL数字频率计设计与实现课程设计任务书学院:计算机与通信工程学院专业:网络工程专业课程名称计算机组成原理课程设计时间2010~2011学年第一学期17~18周学生姓名郭祥斌指导老师陈沅涛题目主要内容:(1)数字频率计前端信号的放大整形处理(2)数字频率计的Verilog HDL设计实现(3)数字频率计的CPLD/FPGA制作要求:(1)通过对相应文献的收集、分析以及总结,给出相应课题的背景、意义及现状研究分析。

(2)通过课题设计,掌握计算机组成原理的分析方法和设计方法。

(3)学按要求编写课程设计报告书,能正确阐述设计和实验结果。

(4)学生应抱着严谨认真的态度积极投入到课程设计过程中,认真查阅相应文献以及实现,给出个人分析、设计以及实现。

应当提交的文件:(1)课程设计报告。

(2)课程设计附件(主要是源程序)。

课程设计成绩评定学院计算机通信工程专业网络工程班级网络08-02 班学号200858080223 学生姓名郭祥斌指导教师陈沅涛课程成绩完成日期2010年12月31日指导教师对学生在课程设计中的评价评分项目优良中及格不及格课程设计中的创造性成果学生掌握课程内容的程度课程设计完成情况课程设计动手能力文字表达学习态度规范要求课程设计论文的质量指导教师对课程设计的评定意见综合成绩指导教师签字年月日基于Verilog HDL数字频率计设计与实现学生:郭祥斌指导老师:陈沅涛摘要:在电子技术中,频率是最基本的参数之一,并且与许多电参量的测量方案、测量结果都有十分密切的关系,因此频率的测量就显得更为重要。

测量频率的方法有多种,其中电子计数器测量频率具有精度高、使用方便、测量迅速,以及便于实现测量过程自动化等优点,是频率测量的重要手段之一。

电子计数器测频有两种方式:一是直接测频法,即在一定闸门时间内测量被测信号的脉冲个数;二是间接测频法,如周期测频法。

直接测频法适用于高频信号的频率测量,间接测频法适用于低频信号的频率测量。

数字频率计verilogHDL代码

数字频率计verilogHDL代码
input lock;
input[3:0]
datain1,datain2,datain3,datain4,datain5,datain6,datain7,datain8;
output[3:0]
dataout1,dataout2,dataout3,dataout4,dataout5,dataout6,dataout7,dataout8;
testctl m1(clk,clr_cnt,clken,lock,div2clk);
bwjsq m2(fx,clr_cnt,clken,dataout1,dataout2,dataout3,dataout4,dataout5,dataout6,dataout7,dataout8,);
lock m3(lock,dataout1,dataout2,dataout3,dataout4,dataout5,dataout6,dataout7,dataout8,dataout11,dataout12,dataout13,dataout14,dataout15,dataout16,dataout17,dataout18);
jsq m1(clk,reset,clken,dataout1,co1);
jsq m2(co1,reset,clken,dataout2,co2);
jsq m3(co2,reset,clken,dataout3,co3);
jsq m4(co3,reset,clken,dataout4,co4);
end
end
endmodule
reg co;
always@(posedge clk or posedge reset)
begin
if(reset)

基于Verilog HDL数字频率计的设计

基于Verilog HDL数字频率计的设计

EDA设计课程论文题目基于Verilog HDL数字频率计的设计学院通信学院专业班级学生姓名大彬哥指导教师大陆会2013年5月17日EDA设计基础实验论文摘要频率是常用的物理量, 在实际测量过程中总是尽可能地把被测参量转换成频率参量进行测量。

例如工程中用振弦式方法测量力、时间测量、速度控制等, 都可转化为频率测量。

随着科学技术与计算机应用的不断发展, 以单片机作为核心的测量控制系统层出不穷。

在被测信号中, 较多的是模拟和数字开关信号, 此外还经常遇到以频率为参数的测量信号, 例如流量、转速、晶体压力传感器以及经过参变量一频率转换后的信号等等。

因此, 频率测量是电子测量技术中最基本的测量之一。

电子计数器测频有两种方式:一是直接测频法,即在一定闸门时间内测量被测信号的脉冲个数;二是间接测频法,如周期测频法。

直接测频法适用于高频信号的频率测量,间接测频法适用于低频信号的频率测量。

本文运用现代电子设计工具, 采用V er ilogHDL语言在CPLD器件上实现了简易数字频率计的设计。

在10Hz ~ 100MHz 频率测量范围内, 该频率计能根据输入被测频率信号, 自动调整测试量程进行测试并给出测试结果的BCD 码及七段LED 译码显示。

具有体积小、可靠性高、功耗低的特点。

关键词:数字频率计 Verilog_HDL 分频计数IEDA设计基础实验论文AbstractFrequency is a common physical quantities, in actual measurement process is always possible, the measured parameters are converted into the frequency parameter measurement. For example, engineering with vibrating method for measuring force, measurement of time, velocity control, can all be converted into frequency measurement. With the development of science and technology and the continuous development of computer applications, to single-chip microcomputer as the core control system for measuring the emerge in an endless stream. In the measured signal, more is analog and digital switch signal, in addition also frequently encountered with a frequency parameter measurement signal, such as flow rate, rotational speed, crystal pressure sensor and the variable frequency converted signal and so on. Therefore, the frequency measurement is the electronic measurement technology in the most fundamental measurement of.Electronic counter frequency measurement in two ways : one is the direct frequency measurement Law, or within a certain time gates of measured signal pulse number; two is the indirect frequency measurement Law, such as cycle frequency measurement method. Direct frequency measurement Law is applicable to the high frequency signal frequency measurement, indirect frequency measurement Law is applicable to low-frequency signals in the frequency measurement. The use of modern electronic design tool, using V Er ilogHDL language in CPLD device achieves simple digital frequency meter design. In the10Hz100MHz frequency measurement range, the frequency meter according to input the measured frequency signal, automatic adjustment and test range tested and the test results are given in the BCD code and the seven LED decoding display. Has the advantages of small volume, high reliability, low power consumption.Keywords: digital frequency meter Verilog_HDL frequency countingIIEDA设计基础实验论文目录摘要 (I)ABSTRACT (II)第1章绪论 (1)1.1数字频率计概况 (1)1.2本文研究内容 (1)1.3目的与意义 (2)第2章系统设计方案 (3)2.1数字频率计总体设计方案 (3)2.1.1 放大整形 (3)2.1.2 SW1、SW2、SW3按键 (3)2.1.3 标准时钟 (3)2.1.4 LED显示模块 (3)2.2系统的参数 (4)2.2.1 频率测量 (4)2.2.2 频率测量方法 (4)2.2.3 功能及技术指标 (4)第3章数字频率计的基本原理 (6)3.1计数模块COUNTER (6)3.2门控模块GATE_CONTROL (6)3.3分频模块FDIV (7)3.4寄存器模块FLIP_LATCH (7)3.5多路选择模块DATA_MUX (8)3.6动态位选模块DISPSELECT (9)3.7BCD译码模块DISPDECODER (11)第4章数字频率计软件设计 (15)4.1软件实现功能综述 (15)4.2多路选择模块DATA_MUX的设计 (15)4.2.1 多路选择模块data_mux的接口电路 (15)4.2.2 多路选择模块data_mux程序设计 (16)4.3动态位选模块DISPSELECT的设计 (17)4.3.1 动态位选模块dispselec的接口电路 (17)4.3.2 动态位选模块dispselec的程序设计 (17)IIIEDA设计基础实验论文4.4BCD译码模块DISPDECODER的设计 (18)4.4.1 BCD译码模块dispdecoder的接口电路 (18)4.4.2 BCD译码模块dispdecoder的程序设计 (19)第5章数字频率计系统的仿真分析 (23)5.1系统原理图 (23)5.2多路选择模块DATA_MUX的仿真分析 (24)5.3动态位选模块DISPSELEC的仿真分析 (25)5.4BCD译码模块DISPDECODER的仿真分析 (25)5.5软硬件调试 (26)结论 (28)参考文献 (29)IVEDA设计基础实验论文第1章绪论1.1数字频率计概况频率是常用的物理量, 在实际测量过程中总是尽可能地把被测参量转换成频率参量进行测量。

100MHz等精度频率计设计(基于某VerilogHDL]

100MHz等精度频率计设计(基于某VerilogHDL]

数电课设报告姓名:郑中权学号:152210303127班级:电子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。

Verilog-数字频率计

Verilog-数字频率计
第三章
3.1
由于晶体振荡器提供的为48M的时钟,而在整个频率计里将用到周期为2s、0.2s和0.02s的闸门信号,还有译码显示的扫描信号1KHz,所以我们在此模块先分频产生1Hz、10Hz、100Hz、1KHz四个分频信号,以留作其它模块用。
分频分别采用4个计数器来实现,当计到一定的值时输出的分频信号翻转,最后分别获得4个分频输出,分频器模块如下图所示:
关键词:FPGA,Verilog,ISE,测频方法
Abstract
This paper introducesthedesign methodofdigitalfrequencymeter based on FPGA,whichusehardware description language-Verilogin software development platform ISEandcanwordin relatively high-speed clockof48MHz. The frequency meter usesthemethodoffrequency measurement, whichcouldaccuratelymeasurethefrequencyofsignalsbetween10Hz to 100MHz.This systemusesthe simulation tool-ModelSim to run and debug theVerilogprogram, and design the circuit placement. A good result can be achieved when the program was burnt on the chip Spartan3A.
图1-7时基信号产生电路
第二章

基于Verilog HDL的简易数字频率计设计

基于Verilog HDL的简易数字频率计设计

基于Verilog HDL的简易数字频率计设计
杨晓岚
【期刊名称】《实验科学与技术》
【年(卷),期】2010(008)002
【摘要】利用"自顶向下"的设计方法,采用Verilog HDL硬件描述语言和原理图描述相结合的方式,设计了简易数字频率计系统,并在Quartus Ⅱ软件环境下对设计项目进行了编译和时序仿真.仿真结果表明,该设计能根据输入信号频率进行量程自转换调整.给出了测量结果并在实验板上4位七段数码管上进行正确显示.
【总页数】4页(P187-190)
【作者】杨晓岚
【作者单位】东南大学自动化学院,南京,211102
【正文语种】中文
【中图分类】TP39;TP391.9;TM930
【相关文献】
1.基于Verilog语言的自适应数字频率计设计 [J], 李秋生;邱勇
2.基于Verilog HDL的简易电子钟设计 [J], 李昊旻;王颖
3.基于Verilog HDL的洗衣机控制电路设计 [J], 杨凯钰;王颖
4.基于Verilog HDL的自动售货机设计与仿真 [J], 李红科;王庆春;贾晓菲
5.基于Verilog HDL的异步FIFO设计 [J], 李红科;王庆春;余顺园
因版权原因,仅展示原文概要,查看原文内容请购买。

基于Verilog HDL的频率计的设计

基于Verilog HDL的频率计的设计

基于Verilog HDL的频率计的设计
张兴娇;肖永江;廖建波;肖丽丽
【期刊名称】《萍乡学院学报》
【年(卷),期】2015(032)006
【摘要】以Altera公司Cyclone IV系列EP4CE15F17C8N器件为核心,制作了一个宽带高频小信号频率计。

该系统将正弦信号通过硬件电路整形、放大、滤波后,用Verilog HDL实现分频、门控、计数、锁存、译码显示等设计,进行数据读取、运算和显示,正弦信号频率范围为1Hz-10MHz,有效值电压范围为50m V-1V,测量相对误差的绝对值不大于10-4。

【总页数】3页(P25-27)
【作者】张兴娇;肖永江;廖建波;肖丽丽
【作者单位】萍乡学院,江西萍乡337000
【正文语种】中文
【中图分类】TN98
【相关文献】
1.基于Verilog HDL的频率计的设计 [J], 张兴娇;肖永江;廖建波;肖丽丽
2.基于Verilog语言的自适应数字频率计设计 [J], 李秋生;邱勇
3.基于Verilog HDL的简易数字频率计设计 [J], 杨晓岚
4.基于Verilog HDL的自动售货机设计与仿真 [J], 李红科;王庆春;贾晓菲
5.基于Verilog语言的等精度频率计设计 [J], 赵亮;吴振宇
因版权原因,仅展示原文概要,查看原文内容请购买。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

目录目录第一章测量原理与方法 (2)1.1测频方法 (2)1.2测周方法 (3)1.3等精度测量法 (3)1.4放大整形电路 (4)1.5时基信号产生 (5)第二章任务要求 (6)第三章各模块功能及介绍 (6)3.1分频器 (6)4.2闸门选择器 (8)4.3频率计数器 (10)4.4锁存器 (12)4.5扫描显示控制译码系统 (13)第四章顶层电路及总体仿真 (14)4.1顶层电路 (14)4.2总体仿真结果 (14)4.3测试结果 (17)I2第一章 测量原理与方法所谓“频率”,就是周期性信号在单位时间(秒)内变化的次数。

若在一定的时间间隔T 内计数,计得某周期性信号的重复变化次数为N ,则该信号的频率可表达为:f = N / T所以测量频率就要分别知道N 和T 的值,由此,测量频率的方法一般有三种:测频方法、测周方法和等精度测量。

1.1 测频方法这种方法即已知时基信号(频率或周期确定)做门控信号,T 为已知量,然后在门控信号有效的时间段内进行输入脉冲的计数,原理图如下图所示:图 1-1 测频方法原理图首先,被测信号①(以正弦波为例)经过放大整形后转变成方波脉冲②,其重复频率等于被测信号频率。

把方波脉冲②加到闸门的输入端。

由一个高稳定的石英振荡器和一系列数字分频器组成了时基信号发生器,它输出时间基准(或频率基准)信号③去控制门控电路形成门控信号④,门控信号的作用时间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-2 测周方法原理图计数器测周的基本原理刚好与测频相反,即由被测信号控制主门开门,而用时标脉冲进行计数,所以实质上也是一种比较测量方法。

1.3 等精度测量法等精度测量法的核心思想是通过闸门信号与被测信号同步,将闸门时间τ控制为被测信号周期长度的整数倍。

测量时,先打开预置闸门,当检测到被测信号脉冲沿到达时,标准信号时钟开始计数。

预置闸门关闭时,标准信号并不立即停止计数,而是等检测到被测信号脉冲沿到达时才停止,完成被测信号整3数个周期的测量。

测量的实际闸门时间可能会与预置闸门时间不完全相同,但最大差值不会超过被测信号的一个周期。

在等精度测量法中,相对误差与被测信号本身的频率特性无关,即对整个测量域而言,测量精度相等,因而称之为“等精度测量”。

标准信号的计数值越f可以提高测量精大则测量相对误差越小,即提高门限时间τ和标准信号频率c度。

在精度不变的情况下,提高标准信号频率可以缩短门限时间,提高测量速度。

原理图如下:图1-4 等精度测量的原理图1.4 放大整形电路放大整形电路包括衰减器、跟随器、放大器、施密特触发器,衰减器由两个双向限幅二极管构成,将来的信号限制在0.7v到-0.7v之间。

跟随器由一个集成运算放大器组成,以增大带负载能力。

放大器为由集成运放构成一个同向比例放大器,放大位数为50倍。

施密特触发器由555定时器组成,实现对波形的整形,整形后的方波送到闸门以便计数。

其仿真电路如下图所示:45图1-5 放大整形电路当输入信号为0.5V 时,仿真放大整形后的输出结果如下图示:图 1-6 放大整形电路仿真结果(一)当输入信号为3V 时,仿真放大整形后的输出结果如下图示:图 1-6 放大整形电路仿真结果(二)当输入信号为10V 时,仿真放大整形后的输出结果如下图示:1.5 时基信号产生系统所使用的时钟信号由时基信号产生模块产生,它由一块晶体振荡器及简单的电路组成,如下图所示:图 1-7 时基信号产生电路图 1-6 放大整形电路仿真结果(三)第二章任务要求设计一个计数式频率计,其频率测量范围为10Hz~1MHz,测量结果用6只数码管显示。

有三个带锁按键开关(任何时候都只能有一个被按下)被用来选择1S、0.1S和0.01S三个闸门时间中的一个。

有一个按钮开关用来使频率计复位。

有两只LED,一只用来显示闸门的开与闭,另一只当计数器溢出时做溢出指示。

下图显示了该频率计前面板的基本排布构想。

第三章各模块功能及介绍3.1 分频器由于晶体振荡器提供的为48M的时钟,而在整个频率计里将用到周期为2s、0.2s和0.02s的闸门信号,还有译码显示的扫描信号1KHz ,所以我们在此模块先分频产生1Hz、10Hz、100Hz、1KHz四个分频信号,以留作其它模块用。

分频分别采用4个计数器来实现,当计到一定的值时输出的分频信号翻转,最后分别获得4个分频输出,分频器模块如下图所示:图3-1 分频器模块此模块的复位为同步方式,当复位有效时,输出将清零。

源程序如下:67modulediv_clk(reset,clk,clk_1hz, clk_10hz, clk_100hz, clk_1khz);inputreset,clk;outputreg clk_1hz, clk_10hz,clk_100hz,clk_1khz;reg [29:0] counter1,counter2,counter3,counter4; //分频计数值always @(posedgeclk 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==24000000) begin counter1<=0;clk_1hz<=~clk_1hz; end else begin counter1<=counter1+1; endif(counter2==2400000) begin counter2<=0;clk_10hz<=~clk_10hz; end else begin counter2<=counter2+1; endif(counter3==240000) begin counter3<=0;clk_100hz<=~clk_100hz; end else begin counter3<=counter3+1; endif(counter4==24000) begin counter4<=0;clk_1khz<=~clk_1khz; endelse begin counter4<=counter4+1; endendendendmodule仿真图如下所示:图 3-2 分频器模块仿真图(一)图 3-3 分频器模块仿真图(二)4.2 闸门选择器该模块主要实现对闸门的选择功能,通过输入的门选信号来确定输出的闸门,生成的模块如下图所示:图3-4 闸门选择器具体实现方法如下:当三个门选信号中有且仅有门选信号gate_ch1有效时,reg变量gate为clk_1hz ,f的值为01;当三个门选信号中有且仅有门选信号gate_ch2有效时,reg变量gate为clk_10hz ,f的值为10;当三个门选信号中有且仅有门选信号gate_ch3有效时,reg变量gate为clk_100hz,f的值为11。

reg变量gate再二分频则是输出的闸门信号gate_out(f 为标记信号,标记了当前闸门的选择情况)。

如果同时有两个或以上的门选信号有效,则err输出为低,否则为高。

另外输出的译码扫描信号为clk_1khz ,供后面的扫描译码模块使用。

本模块的源代码如下所示:modulegate_ch(reset,gate_ch1,gate_ch2,gate_ch3,clk_1hz,clk_10hz,clk_100hz,clk_1khz,gate_out,err,scan_freq,f);input reset,gate_ch1,gate_ch2,gate_ch3,clk_1hz,clk_10hz,clk_100hz,clk_1khz;output reggate_out,err;output wirescan_freq;output reg[1:0] f;reg[2:0] counter5; // 产生扫描信号时的分频计数值8reg gate;always @(posedge clk_1khz or negedge reset)beginif(!reset)begingate<=0;counter5<=0;err<=1;f=2'b01;endelsebeginif(gate_ch1==0 && gate_ch2==1 && gate_ch3==1) begingate<=clk_1hz; f=2'b01;err<=1;endelse if(gate_ch1==1 && gate_ch2==0 && gate_ch3==1) begin gate<=clk_10hz;f=2'b10;err<=1;endelse if(gate_ch1==1 && gate_ch2==1 && gate_ch3==0) begin gate<=clk_100hz;f=2'b11;err<=1;endelsebeginerr<=0;endendendassignscan_freq=clk_1khz;always @(posedge gate or negedge reset)beginif(!reset)begingate_out<=0;endelsebegingate_out<=~gate_out;endendendmodule仿真结果如下图所示:图3-5 当且仅当gate_ch2有效时的仿真结果图(一)94.3 频率计数器频率计数器的功能为在输入的闸门信号的控制下对输入脉冲时行计数,它是一个7拉的模十计数器。

相关文档
最新文档