基于FPGA的8位十进制数字频率计设计
8位十进制频率计 FPGA

8位十进制频率计1 实验目的设计8位十进制频率计,学习较复杂的数字系统设计方法;学习verilog HDL编程的使用。
2 实验内容被测信号从freg_input引脚(FPGA的13脚)输入,经过检查后测得的频率值用数码管1~8显示。
3 实验原理根据频率的定义和频率测量的基本原理,测定信号的频率必须有一个脉宽为1S的输入信号脉冲计数允许的信号;1S计数结束后,计数值锁入锁存器,并将下一测频计数周期作准备的计数器清零。
计数器在这里是由8个十进制计数器级联组成。
4 实验程序顶层文件:module freqtest(clk,freq_input,dig,seg,test);input clk,freq_input;output[7:0]dig,seg;output[9:0]test;reg[25:0]counter;reg[31:0]freq_result;wire[31:0]pre_freq;reg rst;wire divide_c lk; //1HZ闸门信号wire clk_scan;wire cout1,cout2,cout3,cout4,cout5,cout6,cout7;assign clk_scan=counter[15];assign test=counter[9:0];always @(posedge clk)beginif(divide_clk)counter<=26'd0;elsecounter<=counter+1'b1;endassign divide_clk=(counter>=26'd4*******);always @(posedge clk)beginif(divide_clk)freq_result<=pre_freq;endalways @(posedge clk)beginif(divide_clk)rst<=1'b1;elserst<=1'b0;endcnt101 u1(freq_input,rst,1'b1,cout1,pre_freq[3:0]);cnt102 u2(freq_input,rst,cout1,cout2,pre_freq[7:4]);cnt102 u3(freq_input,rst,cout2,cout3,pre_freq[11:8]);cnt102 u4(freq_input,rst,cout3,cout4,pre_freq[15:12]);cnt102 u5(freq_input,rst,cout4,cout5,pre_freq[19:16]);cnt102 u6(freq_input,rst,cout5,cout6,pre_freq[23:20]);cnt102 u7(freq_input,rst,cout6,cout7,pre_freq[27:24]);cnt102 u8(.clk(freq_input),.rst(rst),.cin(cout7),.cout(),.dout(pre_freq[31:28]));scan_led u9(clk_scan,freq_result,dig,seg);endmodule10进制计数模块:module cnt101(clk,rst,cin,cout,dout);input clk,cin,rst;output cout;output [3:0]dout;reg[3:0]sum;reg cout;always @(posedge clk or negedge rst)if(!rst)begincout=1'b0;sum=4'd0;endelseif(sum==4'd9)begincout=~cout;sum=4'd0;endelsesum=sum+1'b1;assign dout=sum;endmodulemodule cnt102(clk,rst,cin,cout,dout);input clk,cin,rst;output cout;output [3:0]dout;reg[3:0]sum;reg cout;always @(cin)beginif(!rst)beginsum=4'd0;endelseif(sum==4'd9)begincout=~cout;sum=4'd0;endelsesum=sum+1'b1;endassign dout=sum;endmodule数码管扫描显示模块:module scan_led(clk_1k,d,dig,seg); input clk_1k;input[31:0]d;output[7:0]dig,seg;reg[7:0]seg_r,dig_r;reg[3:0]disp_dat;reg[2:0]count;assign dig=dig_r;assign seg=seg_r;always @(posedge clk_1k)begincount<=count+1'b1;endalways @(posedge clk_1k)begincase(count)3'd0:disp_dat=d[31:28];3'd1:disp_dat=d[27:24];3'd2:disp_dat=d[23:20];3'd3:disp_dat=d[19:16];3'd4:disp_dat=d[15:12];3'd5:disp_dat=d[11:8];3'd6:disp_dat=d[7:4];3'd7:disp_dat=d[3:0];case(count)3'd0:dig_r=8'b01111111;3'd1:dig_r=8'b10111111;3'd2:dig_r=8'b11011111;3'd3:dig_r=8'b11101111;3'd4:dig_r=8'b11110111;3'd5:dig_r=8'b11111011;3'd6:dig_r=8'b11111101;3'd7:dig_r=8'b11111110;endcaseendalways @(disp_dat)begincase(disp_dat)4'h0:seg_r = 8'hc0; //显示0 4'h1:seg_r = 8'hf9; //显示14'h2:seg_r = 8'ha4; //显示24'h3:seg_r = 8'hb0; //显示34'h4:seg_r = 8'h99; //显示44'h5:seg_r = 8'h92; //显示54'h6:seg_r = 8'h82; //显示64'h7:seg_r = 8'hf8; //显示74'h8:seg_r = 8'h80; //显示84'h9:seg_r = 8'h90; //显示94'ha:seg_r = 8'h88; //显示a4'hb:seg_r = 8'h83; //显示b4'hc:seg_r = 8'hc6; //显示c4'hd:seg_r = 8'ha1; //显示d4'he:seg_r = 8'h86; //显示e4'hf:seg_r = 8'h8e; //显示fendcaseendendmodule。
8位数字频率计

一、题目:基于FPGA的直接测频法设计8位数字频率计二、设计目的和要求:(一)设计目的:采用直接测频法实现8位数字频率计。
(二)设计要求:1.采用FPGA直接测频/测周法实现2.掌握四种整合方式3.用VHDL语言在Maxplux2上实现三、设计原理和相关知识(一) 设计原理:把频率信号经脉冲形成电路后加到闸门相对一个输入端,只有在闸门开通的T(以秒计)内,计数脉冲被送到计数器进行计数。
计数值为N,有频率定义可以计算得到被测信号频率为:F=N/T(二) 测频法原理图:数字频率计系统组成框图四、设计方案和设计内容(一)数字频率计底层模块设计1.频率计测频控制器模块模块分析:闸门信号上升沿,打开计数器开始计数,直到产生下降沿。
在闸门信号下降沿处产生一个上升沿作为控制时钟信号,将输入端计数结果锁存到输出端。
在闸门信号低电平期间输出一个清零信号是计数器清零,准备下一次计数。
testen使能控制端口高电平期间控制计数器进行计数clr_cnt计数器清零控制信号为1时进行清零load 锁存控制信号,上升沿进行锁存程序:LIBRARY ieee;USE ieee.std_logic_1164.all;USE ieee.std_logic_unsigned.all;entity testct1 isport(clk: in std_logic;testen: out std_logic;clr_cnt:out std_logic;load:out std_logic);end entity;architecture a of testct1 issignal div2clk:std_logic;beginprocess(clk)beginif clk'event and clk='1' thendiv2clk<=not div2clk;end if;end process;process(clk,div2clk)beginif clk='0' and div2clk='0' thenclr_cnt<='1';else clr_cnt<='0';end if;load<=not div2clk;testen<=div2clk;end process;end a;模块图:仿真结果:2.计数器模块模块分析:使能端ena置高电平有效,进行计数,使能端ena置低电平停止计数保留原数值,置高电平继续计数。
8位十进制频率计_EDA课程设计报告

目录一、设计目的 (2)二、设计要求 (2)三、设计思路 (3)四、设计原理 (3)五、设计仿真 (3)六、实验现象 (4)七、设计源码 (4)八、总结 (9)参考书目 (9)引言数字频率计是数字电路中的一个典型应用,实际的硬件设计用到的器件教多,连线比较复杂,而且会产生比较大的延时,造成测量误差、可靠性差。
随着现场可编程阵列FPGA的应用,以EDA 工具作为开发手段,运用VHDL等硬件描述语言语言,将使整个系统大大简化,提高了系统的整体性能和可靠性。
一、课程设计目的1)巩固和加深对“EDA技术”、“数字电子技术”的基本知识的理解,提高综合运用本课程所学知识的能力。
2)培养学生根据课题需要选学参考书籍、查阅手册、图表和文献资料的自学能力。
通过独立思考,深入钻研相关问题,学会自己分析解决问题的方法。
3)培养硬件设计、软件设计及系统软、硬件调试的基本思路、方法和技巧,并能熟练使用当前较流行的一些有关电路设计与分析的软件和硬件。
二、课程设计要求1)脉冲信号的频率就是在单位时间内所产生的脉冲个数,其表达式为,f为被测信号的频率,N为计数器所累积的脉冲个数,T为产生N个脉冲所需的时间。
所以,在1秒时间内计数器所记录的结果,就是被测信号的频率。
2)被测频率信号取自实验箱晶体振荡器输出信号,加到主控室的输入端。
3)再取晶体振荡器的另一标准频率信号,经分频后产生各种时基脉冲:1ms,10ms,0.1s,1s等,时基信号的选择可以控制,即量程可以改变。
4)时基信号经控制电路产生闸门信号至主控门,只有在闸门信号采样期间内(时基信号的一个周期),输入信号才通过主控门。
5)f=N/T,改变时基信号的周期T,即可得到不同的测频范围。
6)当主控门关闭时,计数器停止计数,显示器显示记录结果,此时控制电路输出一个置零信号,将计数器和所有触发器复位,为新一次采样做好准备三、课程设计思路频率测量的基本原理是计算每秒钟内待测信号的脉冲个数。
FPGA八位十进制数字频率计

数字系统设计与VHDL课程设计任务书一、题目:基于FPGA的八位十进制数字频率计的设计与仿真二、主要内容本次设计是运用FPGA(现场可编程门阵列)芯片来实现一个八位十进制数字频率计,输入信号频率通过数码管来显示。
设计中采用Verilog HDL语言编程,运用QUARTUS Ⅱ软件实现。
三、基本要求1. 查阅相关原始资料,书写文献综述,英文资料翻译。
2. 理解相关的资料,确定系统功能、性能指标,选择系统组成方案。
3. 选择系统方案,运用Verilog HDL编程,采用QUARTUS Ⅱ集成开发环境进行编辑、综合测试,并进行引脚锁定。
4. 采用MagicSOPC实验开发平台,以FPGA为核心器件,主控芯片为EP2C35F672C8器件并下载到试验箱中进行验证,最终实现所需的八位十进制数字频率计,并在数码管上显示。
5. 撰写研究报告及结果分析,书写课程设计论文。
四、时间安排五、教材及参考书[1] 潘松, 王国栋. VHDL实用教程[M].西安:电子科技大学出版社,2007.[2] 黄智伟. FPGA系统设计与实践[M].北京:电子工业出版社,2005.[3] 包明. 赵明富.EDA技术与数字系统设计[M].北京:北京航空航天大学出版社,2001.[4] 莫琳,基于FPGA的频率计的设计与实现[J].现代电子技术,2004[5] EDA修改稿基于FPGA的八位十进制数字频率计学生姓名:学院:专业班级:专业课程:指导教师:2014 年6 月15 日一、系统设计1.系统设计要求(1)频率测量范围:1-99.999999MHZ。
(2)测量误差<5%。
2.方案设计使用现场可编程逻辑器件(FPGA)制作,利用Verilog HDL硬件描述语言编程进行控制,然后下载烧写实现。
对于八位十进制数字频率计的设计,本方案采用的是现场可编程逻辑器件来实现, 它的优点是所有电路集成在一块芯片上,此方案所需的外围电路简单,这样它的体积就减少了,同时还提高了系统的稳定度,还可以用软件QuartusⅡ软件进行仿真和调试等,可以充分利用verilog HDL硬件描述语言方便的编程,提高开发效率,缩短研发周期,降低研发成本;而且易于进行功能的扩展,实现方法灵活,调试方便,修改容易。
8位十进制频率计的设计

8位十进制频率计的设计1.设计原理频率计的设计原理基于信号计数和数码显示。
通过对输入信号进行计数,并将计数结果转换为十进制形式进行显示,从而实现对频率的测量。
2.电路构成输入电路负责对输入信号进行放大、滤波和适配等处理,以保证输入信号的准确性和稳定性。
计数电路负责对输入信号进行计数和计数结果的存储。
显示电路负责将计数结果转换为十进制形式,并驱动数码显示器进行显示。
控制电路负责对电路的各个模块进行协调控制和时序控制。
3.工作过程当输入信号到达频率计时,输入电路将信号进行处理,并传递给计数电路。
计数电路对输入信号进行计数,并将计数结果存储在计数寄存器中。
当达到指定的计数时间后,控制电路将计数寄存器中的数值传递给显示电路。
显示电路将计数结果进行解码转换,并驱动数码显示器进行显示。
4.性能优化为了提高8位十进制频率计的性能和精度,可以采取以下几种优化措施。
a)输入电路的设计应具有较高的增益和较好的滤波特性,以保证输入信号的准确性和稳定性。
b)计数电路的设计应具有较高的计数速度和较大的计数范围,以适应不同频率信号的计数需求。
c)显示电路的设计应具有较高的解码精度和较好的驱动能力,以保证数码显示器的准确显示。
d)时序控制应合理设计,以保证各个模块之间的协调和同步,避免时序冲突和干扰。
e)程序算法的优化也是提高频率计性能的关键,可以通过优化计数算法和数据处理方式等方面来提高系统的效率和响应速度。
总之,8位十进制频率计的设计需要考虑输入电路、计数电路、显示电路和控制电路等多个方面的因素,同时还需要合理优化和调整各个模块的设计和工作方式,以提高频率计的性能和精度。
8位十进制显示数字频率计(带周期)设计报告

EDA期末考试设计报告设计题目:8位十进制显示数字频率计(带周期测量) 学校:梧州学院系别:电子信息工程系班别:09电本2班姓名:陈迪学号:5组员:刘芸云王缉俭指导老师:黄玉健一、设计内容:8位十进制显示数字频率计(带周期测量)。
二、设计目的与要求:1、设计电路实现测量1~Hz方波信号的频率以及其周期,并以十进制的方式显示。
2、要求其数值用七段LED数码管或液晶屏显示。
3、在实验系统上硬件测试,验证此设计的功能。
4、画出实体图,设计原理图,要求用Protel设计出具体的电路原理图。
三、设计原理:8位十进制显示数字频率计(带周期测量)是由8位十进制频率计、8位十进制周期测量器和带锁存功能的64选32数据选择器构成。
频率计基准信号采用8Hz的方波信号,而周期测量采用基准信号为50MHz的方波信号。
其中,频率计和周期测量由相同的32位数据锁存器和8位十进制计数器及不同的测频控制电路构成。
为使电路设计更加简单快捷,且方便阅读与理解,本电路使采用模块化的设计思想,先由VHDL源程序对各个模块进行独立编写、测试,然后封装,再用原理图方式进行连接、整合与波形和硬件仿真。
例如将用CLOCK5、CLOCK2输入标准频率,CLOCK0输入被测频,用数码管显示频率和周期。
Protel 设计原理图:11223344DDCCBBA ADig0Dig0Dig0Dig0Dig0Dig0Dig0Dig064选32数据选择器测频控制(频率)8位十进制计数器32位数据锁存器A32位数据锁存器B测频控制(周期)8位十进制计数器FCLKFINSENPCLK选通信号锁存信号8Hz 标准信号50MHz 标准信号测试信号32位数据32位数据32位数据32位数据32位数据锁存信号锁存信号清零信号清零信号使能信号使能信号选通灯锁存灯7段数码管显示8位十进制频率计(带测周期)09电本2本 陈迪 刘芸云 王缉俭1、频率测量的基本原理:根据频率的定义,若某一信号在T时间内重复变化N次,则可知该信号的频率为:f =N/T 对此可采用数字逻辑电路中的门电路来实现,如图:在与门端加入被测信号,另一端加宽度为T1的控制信号(称闸门信号),输出端仅能在T1时间内有波形的出现,然后送入计数器计数,得N*T2=T1所以f =N/T1。
基于 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 等。
8位十进制频率计的设计

1. 实验目的设计8位十进制频率计,学习较复杂的数字系统设计方法。
学习VHDL编码例花语句的使用。
2. 实验内容在SmartSOPC试验箱上实现8位十进制频率计的设计,被测信号从freq_input引脚(FPGA的13脚位于QuickSOPC核心板的左上角)输入,经过检测后测得的频率值用数码管1~8显示。
被测的频率信号由测频内部产生并输出到外部引脚,其频率对应关系图表 3.12所示。
引脚频率值/Hz 引脚频率值/Hz20 24000000 42 75000021 12000000 43 37500023 6000000 44 18750039 3000000 45 9375041 1500000 46 46875 3. 实验原理跟据频率的定义和频率测量的基本原理,测定信号的频率必须有一个脉宽为1秒的输入信号脉冲计数允许的信号;1秒计数结束后,计数值锁入锁存器,并为下一测频率计数周期做准备的计数器清零。
计数器在这里是由8个十进制数器级连组成,如图3.58所示是频率计的计数结构图,从图中可以看出十进制模块之间是由进位链级连而成的。
图3.58频率计计数器结构图4. 实验步骤1.启动QuartusⅡ建立一个空白工程,然后命名为PLJ 。
2.源程序文件命名为PLJ,并选择器件为Altera公司Cyclone系列的EPIC12Q240C8芯片,如图1—1图1—13.新建VHDL源程序文件,输入程序代码并保存。
再进行综合编译,若发现编译过程中有错误,则找出并更正错误,直到编译成功为止。
如图1—2(1)就表示编译成功了(warings可以不考虑)。
图1—2(1)4.对引脚进行锁定。
通过选择[Assignments]下的[pins]。
分配好管脚如图1—3所示。
图1—35.将未使用的管脚设置为三输入。
以防止损坏芯片如图1—4所示。
图1—46.拿出Altera ByteBlasterⅡ下载电缆,并将此电缆的两端分别接到PC机的打印机并口和QuickSOPC核芯板上的JTAG下载口上,打开电源,执行下载命令,把程序下载到FPGA器件中。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
宝鸡文理学院学报(自然科学版),第33卷,第1期,第-页,2013年3月J o u r n a l o f B a o j iU n i v e r s i t y o fA r t s a n dS c i e n c e s (N a t u r a l S c i e n c e ),V o l .33,N o .1,p p .-,M a r .2013D O I :C N K I :61-1290/N.h t t p ://w w w.c n k i .n e t /k c m s /d e t a i l /61.1290.N.基于F P G A 的8位十进制数字频率计设计*1韩芝侠(宝鸡文理学院电子电气工程系,陕西宝鸡721016)摘 要:目的 研究复杂数字电路在E D A 开发系统上的实现方法。
方法 在介绍E D A 特征及设计方法基础上,针对具体的C P L D /F P G A 开发系统,在Q u a r t u s 环境下设计了一款8位十进制数字频率计。
结果 下载/配置到实验板的目标器件上,经实际电路测试验证,达到了预期的设计要求。
结论与传统设计方法相比,该方案具有外围电路简单,程序修改灵活和调试容易等特点;设计的数字频率计测量范围大,精度高,读数直观清晰,可用于频率测量、机械转速测量等领域。
关键词:E D A ;C P L D /F P G A ;Q u a r t u s;数字频率计;复杂数字系统;仿真中图分类号:T P 391.9 文献标志码:A 文章编号:1007-1261(2013)01-0000-04D e s i g no f 8-b i t d e c i m a l s y s t e md i gi t a l f r e q u e n c y me t e rb a s e do nF P G A HA NZ h i -x i a(D e p t .E l e c t r o n i c s&E l e c t .E n g n .,B a o j iU n i v .A r t s&S c i .,B a o ji 721016,S h a a n x i ,C h i n a )A b s t r a c t :A i m T os t u d i e dt h em e t h o dt or e a l i z ead i g i t a l c i r c u i t i nE D A d e v e l o p m e n t s ys t e m.M e t h o d s B a s e do ni n t r o d u c i n g t h ec h a r a c t e r i s t i c sa n dd e s i g n m e t h o d so fE D A ,t oa i m a ts pe c if i c C P L D /F P G Ad e v e l o p m e n t s y s t e m ,A8-b i t d e c i m a l s y s t e md ig i t a l f r e q u e n c y m e t e r i s d e s i gn e d i nQ u -a r t u s e n v i r o n m e n t .R e s u l t s I t i sd o w n l o a d /c o n f i g u r a t i o nt o t h e t a r g e td e v i c eo f e x pe r i m e n t a l p l a t e ,af t e r a c t u a l c i r c u i t t e s t i ng a n dv e r i f y i n g,t h ee x p e c t e dd e s i g nr e q u i r e m e n t i sa c h i e v e d .C o n c l u s i o n C o m p a r i n g w i t h t r a d i t i o n a l d e s i g nm e t h o d ,t h i s d e s i g nh a s c h a r a c t e r i s t i c s o f s i m p l e p e r i ph e r a l c i r c u i t ,f l e x i b l e p r o g r a m m o d i f i c a t i o nw a y a n d e a s y d e b u g m o d e ;T h i s f r e q u e n c y m e t e r a l s oh a s c h a r a c t e r i s t i c s o fw i d em e a s u r e m e n t r a n g e ,h i g ha c c u r a c y,c l e a r a n d i n t u i t i v e r e a d i n g ,a n d c a nb e u s e d f o r f r e q u e n c y m e a s u r e m e n t ,m e c h a n i c a l s p e e dm e a s u r e m e n t ,e t c .K e y wo r d s :E D A ;C P L D /F P G A ;Q u a r t u s ;d i g i t a l f r e q u e n c y m e t e r ;c o m p l e xd i g i t a l c i r c u i t ;s i m -u l a t i o n1 E D A 技术应用随着计算机技术和集成电路技术的快速发展,电子技术设计面临着复杂度不断提高而设计周期不断缩短的矛盾。
为了解决这个问题,就必须采用新的设计方法和使用高层次的设计工具,于是E D A 技术应运而生。
ED A 遵循从上到下的设计原则。
首先从系统设计入手,在顶层进行功能划分和结构设计,顶层电路中的每个次层模块均可完成一个较为独立的功能,次模块在调试成功后可生成一个默认符号,供上一层模块调用。
而高密度可编程逻辑器件F P G A 是E D A 设计所必须的一种编程下载技术,具有易失性,每次重新加电,都要重新装入配置数据,突出优点是可反复编程,系统上电时,给F P G A 加载不同的配置数*收稿日期:2012-09-19,修回日期:2012-10-02基金项目:宝鸡文理学院科研项目(J G 0831)作者简介:韩芝侠(1970-),女,陕西扶风人,副教授,硕士,研究方向:检测技术及自动化装置.E m a i l :h a n _z h i _x i a 999@163.c o m网络出版时间:2012-10-11 17:25网络出版地址:/kcms/detail/61.1290.N.20121011.1725.001.html据,即可令其完成不同的硬件功能,这种配置的改变甚至可以在系统的运行中进行,实现系统功能的动态重构。
“在系统可编程”(I S P )是指对器件、电路或整个电子系统的逻辑功能可随时进行修改或重构的能力,支持I S P 技术的可编程逻辑器件称为在系统可编程逻辑器件,它不需要专门的编程器,利用计算机接口和一根下载电缆即可对器件编程。
1.1 设计任务设计基于F P G A 的8位十进制(即100MH z )数字频率入法综合实现,1.2 选择K H F-件开发系统,其上L E D 显示,其中们的a ~g 择A l t e r a 公司的图1 2 基于F P G A 在E D A 图1中C P L D /F 原理及本次开发环境的具体条件可知,8位十进制数字频率计主要由5个模块组成:分频器c l k -d i v 、测频控制信号发生器f c t r l 、8位十进制计数器c n t 32d 、32位锁存器r e g 32、动态扫描译码驱动器d e c o d e,其原理框图如图2所示。
图2 数字频率计原理框图50MH z 时钟经过c l k d i v 1分频为1H z 标准时基提供给f c t r l ,经过c l k d i v 2分频为1000H z作为动态扫描时8个数码管的位码扫描频率。
f c t r l 模块产生计数使能信号c n t _e n 、清零信号r s t_c n t 及锁存允许信号l o a d ,其中r s t _c n t 对计数器清零,为下一秒的计数操作做准备;c n t _e n 能产生一个1s 脉宽的周期信号,以对频率计中8个十进制计数器的使能端e n 进行同步控制;当c n t_e n 高电平时允许计数,低电平时停止计数,并保持其所计的脉冲数。
在停止计数期间,r e g 32在锁存信号l o a d 的上升沿将c n t 32d 在前一秒钟的计数值锁存进来。
译码器一方面将锁存78个数码8个数范围0~次,分足时序要,所之间比较2实现。
o 0);pr o c e s s (c l k )b e g i n i f c l k 'e v e n t a n d c l k ='1't h e n i fm f =24999999t h e n m f <=(o t h e r s =>’0’);f <=n o t f ;e l s em f <=m f +1;e n d if ;e n d i f;e n d p r o c e s s;2宝鸡文理学院学报(自然科学版)2013年n e w c l k <=f;e n d a r c h i t e c t u r e a r t;3.2 测频控制信号发生器设计图3为测频控制信号发生器时序图,其中c l k k 取1H z ,二分频器后得到计数使能信号c n t _e n ,将c n t _e n 反相后得到上升沿有效的锁存信号l o a d 。
在c l k k =‘0’a n dc n t _e n =‘0’时,r s t _c n t 产生一个高电平有效的清零信号。
据此可用V H D L 设计完成输入输出信号之间的逻辑描述,编译通过后仿真结果如下,证明设计正确。
源程序略。
图棾 测频控制信号发生器时序图3.3 8位十进制计数器c n t 32d 的设计计数模块在闸门时间内对被测信号进行计数。