《2022年基于FPGA的计数器的程序设设计.docx》由会员分享,可在线阅读,更多相关《2022年基于FPGA的计数器的程序设设计.docx(26页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精品学习资源郑州轻工业学院电子技术课程设计题目_基于 FPGA地计数器设计 同学姓名 _ XXX 专业班级 _ 电子信息工程 10-01 班 学号 _5401001030XXX 院 (系) 电气信息工程学院 指导老师 _ 杜海明耿鑫 完成时间 2021 年 06 月 22 日 郑州轻工业学院课 程 设 计 任 务 书欢迎下载精品学习资源题目基于 FPGA地计数器地程序设设计 专业、班级 电子信息工程学号姓名 主要内容、基本要求、主要参考资料等:主要内容:要求同学使用硬件描述语言(Verilog或者 VHDL)设计基于 FPGA 地计数器地源程序 . 实现如下功能:显示 1 个 0-9999 地
2、四位计数器;四位七段数码管地译码与显示. 懂得数码管地译码原理,同时需要做一个分频器,懂得时钟分频地原理及意义.基本要求:1、学会 quartusII地使用,把握 FPGA 地程序设计方法 .2、把握硬件描述语言语法 .3、程序设计完成后要求在quartusII中实现功能仿真 .主要参考资料:1、褚振勇 . FPGA 设计及应用(第三版) M. 西安电子科技高校出版社 .2021,42、陈怀琛 .MATLAB 及在电子信息课程中地应用M. 北京:电子工业出版社 .2021,1完 成 期 限: 2021.6.21 2021.6.25指导老师签名: 课程负责人签名: 2021 年 6 月 18 日
3、目录基于 FPGA地计数器地程序设设计 iii摘要 iii1 绪论 2欢迎下载精品学习资源1.1 FPGA 简介 21.2 硬件描述语言 VHDL特点 21.3 软件开发工具 Quartus II简介 22 整体设计方案 43 各个模块地设计和功能地详细分析53.1 分频器设计 53.1.1 设计原理 53.1.2 源程序及其仿真波形 63.1.3 RTL电路图 73.2 计数器设计 83.2.1 计数器及其应用 83.2.2 计数器源程序及其仿真 83.3 锁存器设计 113.3.1 锁存器及其应用 113.3.2 16位锁存器源程序及其仿真波形 113.4 显示部分设计 123.4.1 七
4、段数码管显示原理 123.4.2 七段数码管源程序及其仿真 144 计数器顶层设计 164.1.1基于 VHDL地自顶向下地设计方法 164.3.2顶层设计源文件及其仿真波形 16总结 20参考文献 20附录 21欢迎下载精品学习资源基于 FPGA 地计数器地程序设设计摘要本文介绍了一种基于 FPGA地,由顶层究竟层设计地数字频率计. 本文主要包括该频率计地设计基础和实现方法以及译码与显示等内容,描述了它地设计平台、工作原理和软硬件实现. 本设计主要有分频器、四位计数器、16位锁存器以及数码管显示电路. 计数器设计采纳VHDL硬件描述语言编程 , 极大地削减了硬件资源地占用,仿真与分析结果说明
5、,该数字频率计性能优异,软件设计语言敏捷,硬件简洁,速度快.欢迎下载精品学习资源关键词 FPGA 计数器 VHDL1 绪论1.1 FPGA简介FPGA( Field Progrmable Gate Array),即现场可编程门阵列,它是在PAL、GAL、CPLD 等可编程器件地基础上进一步进展地产物. 它是作为专用集成电路( ASIC)领域中地一种半定制电路而显现地,既解决了定制电路地不足,又克服了原有可编程器件门电路数有限地缺点 .自1985 年Xilinx 公司推出第一片中大规模现场可编程规律器件FP2GA 至今 ,FPGA 已 经受了十几年地历 . 在这十几年地过程中,可编程器件有了惊人
6、地进展 : 从最初地 1200 个可利用门, 到今日地 25 万可利用门 ,规模增大了 200 多倍; FPGA 供应商也从 Xilinx 地一枝独秀 ,到今日近 20 个厂商地分庭抗争;FPGA 从单一地基于 SRAM结构到今日各种结构类型地显现, 都充分表达了可编程器件这一庞大市场地吸引力.FPGA 不仅可以解决电子系统小型化、低功耗、高牢靠性等问题 ,而且其开发周期短、开发软件投入少、芯片价格不断降低 .由于目前电子产品生命周期相对缩短,相近功能产品地派生设计增多等特点,促使FPGA 越来越多地取代了 ASIC 地市场 , 特殊是对国内众多地科研单位来说,小批量、多品种地产品需求 ,使得
7、 FPGA 成为首选 .1.2 硬件描述语言 VHDL 特点功能强大、设计敏捷 .VHDL 具有功能强大地语言结构,可以用简洁明确地源代码来描述复杂地规律掌握 . 它具有多层次地设计描述功能,层层细化,最终可直接生成电路级描述 .VHDL 支持同步电路、异步电路和随机电路地设计,这是其他硬件描述语言所不能比拟地 .VHDL 仍支持各种设计方法,既支持自底向上地设计,又支持自顶向下地设计;既支持模块化设计,又支持层次化设计. 支持广泛、易于修改 . 由欢迎下载精品学习资源于 VHDL已经成为 IEEE 标准所规范地硬件描述语言,目前大多数EDA工具几乎都支持 VHDL,这为 VHDL地进一步推广
8、和广泛应用奠定了基础 . 在硬件电路设计过程中,主要地设计文件是用 VHDL编写地源代码,由于 VHDL易读和结构化,所以易于修改设计. 强大地系统硬件描述才能 .VHDL 具有多层次地设计描述功能,既可以描述系统级电路,又可以描述门级电路. 而描述既可以采纳行为描述、寄存器传输描述或结构描述,也可以采纳三者混合地混合级描述. 另外, VHDL支持惯性推迟和传输推迟, 仍可以精确地建立硬件电路模型.VHDL 支持预定义地和自定义地数据类型,给硬件描述带来较大地自由度,使设计人员能够便利地创建高层次地系统模型. 独立于器件地设计、与工艺无关 . 设计人员用 VHDL进行设计时,不需要第一考虑挑选
9、完成设计地器件,就可以集中精力进行设计地优化. 当设计描述完成后,可以用多种不同地器件结构来实现其功能 . 很强地移植才能 .VHDL 是一种标准化地硬件描述语言,同一个设计描述可以被不同地工具所支持,使得设计描述地移植成为可能.1.3 软件开发工具 Quartus II 简介Altera 地Quartus II设计软件供应了完整地多平台设计环境,它可以轻易满意各种特定设计地需要,也是单芯片可编程系统SOPC 设计地综合性环境和 SOPC开发地基本设计工具,并为 Altera DSP 开发包进行系统模型设计供应了集成综合环境.Quartus II设计工具完全支持VHDL、Verilog 地设计
10、流程,其内部嵌有 VHDL、Verilog 规律综合器 .Quartus II包括模块化地编译器.编译器包括地功能模块有分析/ 综合器( Analysis Synthesis )、适配器( Fitter )、装配器 Assembler 、时序分析器 Timing Analyzer、设计帮助模块 Design Assistant等. 可以通过挑选 Start Compilation(Processing 菜单)来运行全部地编译器模块 . 如要单独运行各个模块,可以通过挑选Start (Processing 菜单),然后从 Start 子菜单中为模块挑选相应地指令.此外,仍可以通过挑选Compil
11、er Tool(Tools 菜单)并在 Compiler Tool 窗口中运行该模块来启动编译器模块. 在 Compiler Tool窗口中,可以打开该模块地设置文件或报告文件,仍可以打开其它相关窗口.欢迎下载精品学习资源Quartus II 支持层次化地设计,可以在一个新地编辑输入环境中对使用不同输入设计方式完成地模块进行调试,从而解决原理图与HDL混合输入设计地问题.在设计输入之后,Quartus II 地编译器将给出设计输入地错误报告. 可以使用 Quartus II 带有地 RTL Viewer 观看综合后地 RTL图.Quartus II自动设计地各主要处理环节和设计流程,包括设计输
12、入编辑、设计分析与综合、适配、编译文件汇编(装配)、时序参数提取以及编程下载几个步骤.欢迎下载精品学习资源2 整体设计方案设计基于 FPGA 地计数器,要求显示 1 个 0-9999 地四位计数器,可以由 4 个模为 10 地十进制计数器级联而成,所以可以显示地频率范畴是 1-9999HZ. 因此,频率计地功能分割成四个模块:分频计,计数器,输出锁存器和译码显示电路 .各个模块均用 VHDL 语言描述并用 quartus2 进行仿真 . 本设计采纳数控分频计,可以对信号实现不同分频比,输出信号作为计数器输入 .锁存器由一个外部脉冲掌握可以掌握显示部分显示周期 . 当系统正常工作时, 输入信号标
13、供应频率,经过分频器分频,产生计数信号送入计数器模块,计数模块对输入地脉冲个数进行计数数终止后,将计数结果送入锁存器中,保证系统可以稳固显示数据,计数结果能够显示在七段数码显示管上.clk11分频计计数器锁存器显示电路ena0rest0clk2图 1设计方案欢迎下载精品学习资源3 各个模块地设计和功能地详细分析3.1 分频器设计3.1.1 设计原理分频器是指使输出信号频率为输入信号频率整数分之一地电子电路.在很多电子设备中如电子钟、频率合成器等,需要各种不同频率地信号协同工作,常用地方法是以稳固度高地晶体振荡器为主振源,通过变换得到所需要地各种频率成分,分频器是一种主要变换手段.早期地分频器多
14、为正弦分频器,随着数字集成电路地进展,脉冲分频器(又称数字分频器)逐步取代了正弦分频器,即使在输入输出信号均为正弦波时也往往采纳模数转换数字分频数模转换地方法来实现分频.正弦分频器除在输入信噪比低和频率极高地场合已很少使用 .数控分频器地功能是在输入端给定不同数据时,将对输入地时钟信号有不同地分频比,对于一个 N 分频器,分频出地时钟周期是原时钟周期地N 倍,频率变为原先地 1/N. 对于一个 8 位计数器,假如输入数DD,然后启动计数器工作,就经过D 倍地时钟周期计数器溢出时,输出 full 变为高电平,再以 full 为敏锐信号,对 fout 进行取反操作,如此 N=2D. 计数一次后,再
15、重新计数,反复进行直至输入被给予新值.对于数控分频数器,装载不同地 计数初始值时,会有不同频率地溢出信号,从而得到不同地输出. 数控分频器是利用计数值可并行预置地加法计数器设计完成地.欢迎下载精品学习资源3.1.2 源程序及其仿真波形LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL ;USE IEEE.STD_LOGIC_UNSIGNED.ALL ;ENTITY DVF ISPORT CLK : IN STD_LOGIC;DD : IN STD_LOGIC_VECTOR7 DOWNTO 0;FOUT : OUT STD_LOGIC ;END;ARCHITECTU
16、RE one OF DVF IS SIGNAL FULL : STD_LOGIC ;BEGINP_REG: PROCESSCLKVARIABLE CNT8 : STD_LOGIC_VECTOR7 DOWNTO 0;BEGINIF CLKEVENT AND CLK = 1 THEN IF CNT8 = 11111111 THENCNT8 := DD ; - 当 CNT8 计数计满时,输入数据D 被同步预置给计数器 CNT8 FULL = 1 ; - 同时使溢出标志信号 FULL 输出为高电平ELSE CNT8 := CNT8 + 1 ; - 否就连续作加 1 计数FULL = 0 ; - 且输出
17、溢出标志信号 FULL 为低电平END IF ;END IF ;END PROCESS P_REG;P_DIV: PROCESSFULL VARIABLE CNT2 : STD_LOGIC ;BEGIN欢迎下载精品学习资源IF FULLEVENT AND FULL = 1 THENCNT2 := NOT CNT2; - 假如溢出标志信号 FULL 为高电平, D 触发器输出取反IF CNT2 = 1 THEN FOUT = 1; ELSE FOUT 0;elsif clkevent and clk=1 then if ena =1 thenif cqi 9 then cqi:=cqi+1;co
18、ut0;cout0;end if ;end if ;欢迎下载精品学习资源outy clkk,rst=rst,ena=ena,cout=e0,outy=d3 downto 0 ;u2:cnt10 port mapclk=e0,rst=rst,ena=ena,cout=e1,outy=d7 downto 4 ;u3:cnt10 port mapclk=e1,rst=rst,ena=ena,cout=e2,outy=d11 downto 8 ;u4:cnt10 port mapclk=e2,rst=rst,ena=ena,cout=e3,outy=d15 downto 12 ;end archite
19、cture one;3.3 锁存器设计3.3.1 锁存器及其应用所谓锁存器,就是输出端地状态不会随输入端地状态变化而变化,仅在有锁存信号时输入地状态被储存到输出,直到下一个锁存信号到来时才转变. 典型地锁存器规律电路是D 触发器电路 .在 LED 和数码管显示方面,要维护一个数据地显示,往往要连续地快速地刷新. 特殊是在四段八位数码管等这些要选通地显示设备上. 在人类能够接受地刷新频率之内,大概每三十毫秒就要刷新一次 . 这就大大占用了处理器地处理时间,消耗了处理器地处理能力,仍铺张了处理器地功耗 . 锁存器地使用可以大大地缓解处理器在这方面地压力. 当处理器把数据传输到锁存器并将其锁存后,锁
20、存器地输出引脚便会始终保持数据状态直到下一次锁存新地数据为止 . 这样在数码管地显示内容不变之前,处理器地处理时间和IO 引脚便可以释放. 可以看出,处理器处理地时间仅限于显示内容发生变化地时候,这在整个显示时间上只是特别少地一个部分 .而处理器在处理完后可以有更多地时间来执行其他地任务. 这就是锁存器在 LED 和数码管显示方面地作用 : 节约了珍贵地 MCU 时间.3.3.2 16 位锁存器源程序及其仿真波形library ieee ;use ieee.std_logic_1164.all;欢迎下载精品学习资源use ieee.std_logic_unsigned.all;entity r
21、eg16b isport load: in std_logic;din: in std_logic_vector15 downto 0;dout: out std_logic_vector15 downto 0;end reg16b ;architecture art of reg16b is beginprocessload,din beginif loadevent and load=1thendout a a a a a a a a a a a a a a a a null;end case ;end process ;end ;图 7七段数码管仿真波形欢迎下载精品学习资源4 计数器顶层
22、设计4.1.1 基于 VHDL 地自顶向下地设计方法所谓自顶向下设计方法 , 就是采纳可完全独立于芯片厂商及其产品结构地描述语, 在功能级对设计产品进行定义 ,并结合功能仿真技术,以确保设计地正确性 ,能定义完成后 ,利用规律综合技术 ,把功能描述转换成某一详细结构芯片地网表文件, 输出给厂商地布局布线器进行布局布线 . 布局布线结果仍可反标回同一仿真器,进行包括功能和时序地后验证,以保证布局布线所带来地门延时和线延时不会影响设计地性能.自顶向下设计方法地优越性是显而易见地.第一 ,由于功能描述可完全独立于芯片结构,在设计地最初阶段 , 设计师可不受芯片结构地约束,集中精力进行产品设计 ,防止
23、了传统设计方法所带来地重新再设计风险 ,大大缩短了设计周期 .其次 ,设计地再利用得到保证 . 目前地电子产品正向模块化进展,所谓模块化就是对以往设计成果进行修改, 组合和再利用 ,产生全新地或派生设计 ,而自顶向下设计方法地功能描述可与芯片结构无关. 因此可以以一种IP 地方式进行存档 , 以便将来地重新利用 .第三, 设计规模大大提高 . 简洁地语言描述即可完成复杂地功能, 而不需要手工绘图 . 第四,芯片挑选更加敏捷 .设计师可在较短地时间内采纳各种结构芯片来完成同一功能描述 , 从而在设计规模、速度、芯片价格及系统性能要求等方面进行平稳,挑选正确结果 .4.1.2 顶层设计源文件及其仿
24、真波形library ieee ;use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all;use ieee.std_logic_arith;use ieee.std_logic_signed;entity ccnntt isportena0,rst0:in std_logic;欢迎下载精品学习资源clk1,clk2:in std_logic;ledout:out std_logic_vector27 downto 0;din:in std_logic_vector7 downto 0;end entity ;architectu
25、re one of ccnntt is component DVFport clk:in std_logic;DD : in std_logic_vector7 downto 0;fout:out std_logic;component cnt10_4 portclkk,rst,ena:in std_logic;d:out std_logic_vector15 downto 0;end component;component reg16b portload: in std_logic;din : in std_logic_vector15 downto 0;dout: out std_logi
26、c_vector15 downto 0;end component;component led_controllerportd:in std_logic_vector3 downto 0;a:out std_logic_vector6 downto 0;end component;signal y:std_logic;signal b,h:std_logic_vector15 downto 0 ;signal leds:std_logic_vector27 downto 0 ;begin欢迎下载精品学习资源u1: DVF port mapclk=clk1,DD=din,fout=y;u2: c
27、nt10_4 port mapclkk=y,rst=rst0, ena=ena0, d=b;u3: reg16b port mapload=clk2,din=b15 downto 0,dout=h15 downto 0;u4:led_controller port mapd=h3 downto 0,a=leds6 downto 0; u5: led_controller port mapd=h7 downto 4,a=leds13 downto 7;u6: led_controller port mapd=h11 downto 8,a=leds20 downto 14;u7: led_cont
28、roller port mapd=h15 downto 12,a=leds27 downto 21;ledout=leds;end ;欢迎下载精品学习资源图 8总程序仿真波形欢迎下载精品学习资源总结为期一周地课程设计终止啦,在整个计数器地设计实现过程中,学会了不少新地知识,同时也将所学地语言有了进一步地深刻懂得,现在在这里谈一下自己地心得体会.作为一个电子信息类专业地同学,FPGA是我们重要地课程,是我们将来从事电子设计地有力工具 .通过对该课程地学习,我们对电子设计自动化有了更进一步地懂得;通过对数字滤波器地设计,我们也明白了计数器地基本结构和基本特性,而且更加坚固地把握了相关地理论学问,同
29、时也提高了自己地动手实践才能. 这次课程设计,很重要地一部分就是quartus2 地运用,为此学习了程序地基本操作,对于一般地设计、编译、仿真能够娴熟把握.这次课程设计最终顺当完成了,在设计中遇到了很多专业学问问题,最终在同学地帮助以及自己地努力下,最终迎刃而解,同时,我也学到了很多有用地学问.参考文献1 褚振勇 . FPGA 设计及应用(第三版) M. 西安电子科技高校出版社 .2021,42 陈怀琛 .MATLAB 及在电子信息课程中地应用 M. 北京:电子工业出版社 .2021,13 王新安 .FPGA/CPLD 最新有用技术指南(第一版)M ,北京:清华高校出版社, 20054 林明权 .VHDL 数字掌握系统设计范例 第一版 M 北京:电子工业出版社, 2003 年欢迎下载精品学习资源5 黄继业 .EDA 技术有用教程 其次版 M ,北京:科学出版社, 2005 年6 杨恒新 .自顶向下法设计交通灯掌握系统J, 电气电子教案学报, 2006 年第四期7 曾素琼 .EDA 技术在数字电路中地探讨 J ,试验科学与技术, 2005 年第一期8 陈赜 .PLD/FPGA 与 ASIC 设计实践教程 M 北京:科学出版社, 20059 王金明数字系统设计与Verilog HDL M 北京:电子工业出版社,2021附录欢迎下载精品学习资源欢迎下载