基于FPGA十进制同步计数器_第1页
基于FPGA十进制同步计数器_第2页
基于FPGA十进制同步计数器_第3页
基于FPGA十进制同步计数器_第4页
基于FPGA十进制同步计数器_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、十进制同步计数器实验目的1. 学习十进制同步计数器的 Verilog 硬件设计2. 学会并掌握 Quartus II 软件的使用3. 学会并掌握 modelsim 仿真软件的使用二、实验原理进制计数器具有电路结构简单、 运算方便等特点, 但是日常生活中我们所接 触的大部分都是十进制数, 特别是当二进制数的位数较多时, 阅读非常困难, 还 有必要讨论十进制计数器。 在十进制计数体制中, 每位数都可能是 0,1,2, 9 十个数码中的任意一个,且“逢十进一” 。 根据计数器的构成原理,必须由四 个触发器的状态来表示一位十进制数的四位二进制编码。第 2 个计数脉冲来到后,其状态为 0010。以下类推

2、,可以得到如表 1 所示 的状态表。但需注意:在第 9 个脉冲来到后,亦即计数器处于 1001 态时,低电 平封住了 F2的置 1端,Q1的高电平又使 K41,故第十个计数脉冲来到后, F2、 F3状态不变, F1、F4同时置 0,计数器跳过多余的 6个状态,完成一次十进制 计数循环。计数 NQ4 Q3 Q2 Q1十进制00 0 0 0010 0 0 1120 0 1 0230 0 1 1340 1 0 0450 1 0 1560 1 1 0670 1 1 1781 0 0 0891 0 0 19101 0 1 0111 0 1 1121 1 0 0131 1 0 1表 1 同步十进制加法计数

3、器状态表为了满足十进制加法计数器的原理,本实验用 Verilog 程序在 FPGA/CPLD 中来实现。首先设计一个程序,程序为脉冲输入,设输出的四位码为 q3:0 , 十进制计数值为 count, 脉冲上升沿时 q 值+1,直到 q=9 时 count=1 ,q 置零重新 开始计数直至下一个 q=9,count=2 ,依次循环。三、实验任务1. 根据实验目的编写 verilog 程序2. 将设计好的 Verilog 译码器程序在 Quartus II 上进行编译3. 对程序进行适配、仿真,给出其所有信号的时序仿真波形图(注意仿真波形 输入激励信号的设置) 。本实验要求自己设置 clr 值,理

4、解清零的意义四、实验步骤:1. 建立工作库文件和编辑设计文文件任何一项设计都是一项 Project (工程),而把一个工程下的所有文件放在 一个文件夹是一个非常好的习惯, 以便于我们整理, 利用和提取不同工程下的文 件,而此文件夹将被 EDA软件默认为 Work Library (工作库),所以第一步先根 据自己的习惯,建立个新的文件夹。(1)新建文件夹:在 E 盘建立并保存工程,文件夹取名 myproject, 工程取 名为 cnt10_1( 2 )输入源程序:打开 Quartus II ,选择菜单 File-New-Design Files-VerilogHDL File-OK(如下图所示

5、 )代码如下: modulet10_1(clr, clk, q, cout); input clr, clk;output3:0 q;output cout;reg3:0 q;reg cout;always (posedge clk)beginif (clr)q = 0;else beginif (q = 9) q = 0; else q = q + 1;if (q = 0)cout = 1;else cout = 0;endendendmodule(3)保存文件:完成一步就保存一步是一个好习惯,这样即使出现意外情 况,也不至于以前的努力付诸东流。选择 File-Save as, 选择保存路径

6、,即刚 才新建的文件夹 myproject , 文件名应与实体名保持一致, 即 cnt10_1 ,点击保存 后会跳出“ Do you want to create a new project with this file? ”选择“是”, 则进入如下界面点击 Next,进入“工程设置 ”对话框,如图所示第一行表示工程所在的文件夹, 第二行为工程名, 可以与顶层文件的实体名 保持一致,也可以另取别的名字,第三行为当前工程顶层文件的实体名。点击 next ,进入 ADDF ILE 对话框,如图所示,单击 Add All 按钮,将工程相关的所有 VHDL文件加进工程,也可以单击“ Add . ”选择

7、性加入,按此 步骤建立工程,工程已经自动将所有文件加进去了,可以直接点击 next ,当先 直接建立工程时,需要自己添加。(4)选择目标芯片:我们选用的是 CycloneIII 系列的 EP3C55F484C,8 在 Family 栏选择芯片系列 CycloneIII ,在窗口右边的三个下拉列表框选择过 滤条件,分别选择 Package为 FBGA、 Pin count 为 484和 Speed grade 为 8,点 击 Next ,如图所示(5)工具设置:进入 EDA工具设置窗口,有三个选项,分别是选择输入的 HDL类型和综合工具、选择仿真工具、选择时序分析工具,这是除 Quartus I

8、I 自含的所有设计工具以外的外加的工具,如果不作选择的,表示仅选择 Quartus II 自含的所有设计工具,本次不需要其他的设计工具,可以直接点击 Next6)结束设置: 进入“工程设置统计”窗口, 列出了与此工程相关的设置情况,设置完成,点击 FinishStart Compilation 命令,2. 编译 配置好后就可以进行编译了,点击 Processing 启动全程编译编译成功后的界面如图所示3. 时序仿真( 1 ) 打 开 波 形 编 辑 器 : File-New-Verification/Debugging Files-Vector Waveform-OK, 即出现空白的波形编辑器

9、,如图所示(2)设置仿真时间区域:Edit-End Time 在 Time 栏中输入 50,单位选择us,”点击确定并保存波形文件(3)将工程 cnt10_1 的端口信号名选入波形编辑器中: View-Utility windows-Node Finder, 在 Filter 框中选 Pins :all (通常是默认选项) ,然后 点击 List ,则显示出了所有引脚,如图所示将重要的端口名拖进波形编辑器后关闭窗口(4)编辑输入波形:首先进行总线数据格式设置和参数设置:点击信号左 边的+号,能展开此总线中的所有信号; 如果双击此 +号左边的信号标记, 将弹出 对该信号数据格式设置的 Node

10、Properties 对话框, 在该对话框的 Radix 下拉列表中有四种选择,这里可选择二进制Binary 表达方式。其次输入波形数据:用鼠标在图所示信号名的某一数据区拖拉出来一块蓝色 区域,然后单击左侧工具栏的问号(?)按钮,在弹出窗口输入数据,继而在不 同区域设置不同数据。本设计不需要输入数据,脉冲及输入。(5)仿真仿真器参数仿真: 选择 Assignment Settings 命令,在 Settings 窗口下选 择 Category Simulator Settings 。在右侧的 Simulation mode 下拉列表中选 择 Timing ,即选择时序仿真,并选择仿真激励文件名

11、 cnt10_1.vwf 。选择 Simulation Period 栏,确认选中了“ Run simulation until all vector stimuli are used ”。(6)启动仿真器: Processing-Start Simulation , 直至出现 Simulation was successful ,仿真结束,然后会自动弹出“ Simulation Report ”如图所示4.应用 RTL电路图观察器Tools-Netlist Viewers-RTL Viewer,结果如图所示四、 实验总结FPGA的学习是一个循序渐进的过程。一开始接触到 Qurtus ii 的时候觉得 很困难,尤其是仿真, 初次仿真的时候对参数的设置没有清晰

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论