搜档网
当前位置:搜档网 › Verilog HDL十进制计数器实验Quartus90非常详细的步骤

Verilog HDL十进制计数器实验Quartus90非常详细的步骤

实验二十进制计数器实验该实验将使用Verilog 硬件描述语言在DE2-70 开发平台上设计一个基本时序逻辑电路——1 位十进制计数器。通过这个实验,读者可以了解使用Quartus 工具设计硬件的基本流程以及使用Quartus II 内置的工具进行仿真的基本方法和使用SignalTap II 实际观察电路运行输出情况。SignalTap II 是Quartus 工具的一个组件,是一个片上的逻辑分析仪,可以通过JTAG 电缆将电路运行的实际输出传回Quartus 进行观察,从而省去了外界逻辑分析仪

时的很多麻烦。

实验步骤

3.1建立工程并完成硬件描述设计

1. 打开Quartus II 工作环境,如图3-1 所示。

图3-1 Quartus II工作环境界面

2. 点击菜单项File->New Project Wizard 帮助新建工程。参看图3-2。

图3-2 选择New Project Wizard

打开Wizard 之后,界面如图3-3 所示。点击Next,如图3-3。

第23 页共208 页

图3-3 New Project Wizard界面

3. 输入工程工作路径、工程文件名以及顶层实体名。

这次实验会帮助读者理解顶层实体名和工程名的关系,记住目前指定的工程名与顶层

实体名都是Counter10,输入结束后,如图3-4 所示。点击Next。

图3-4输入设计工程信息

4. 添加设计文件。界面如图3-5 所示。如果用户之前已经有设计文件(比如.v 文件)。

那么再次添加相应文件,如果没有完成的设计文件,点击Next 之后添加并且编辑设计文件。

图3-5添加设计文件

5. 选择设计所用器件。由于本次实验使用Altera 公司提供的DE2-70 开发板,用户必须选择与DE2-70 开发板相对应的FPGA 器件型号。

在Family 菜单中选择Cyclone II,Package 选FBGA,Pin Count 选896,Speed grade 选6,确认Available devices 中选中EP2C70F896C6,如图3-6。

图3-6选择相应器件

6. 设置EDA 工具。设计中可能会用到的EDA 工具有综合工具、仿真工具以及时序

分析工具。本次实验中不使用这些工具,因此点击Next 直接跳过设置。如图3-7。

图3-7设置EDA工具

7. 查看新建工程总结。在基本设计完成后,Quartus II 会自动生成一个总结让用户核对之前的设计,如图3-8 所示,确认后点击Finish 完成新建。

图3-8新建工程总结

在完成新建后,Quartus II 界面中Project Navigator 的Hierarchy 标签栏中会出现用户正

在设计的工程名以及所选用的器件型号,如图3-9 所示。

图3-9观察正在设计的工程

8. 培养良好的文件布局。

点击菜单项Assignments->Device,选中Compilation Process Settings 选项卡,勾上右边的Save Project output files in specified directory,输入路径(一般为debug 或者release),如图

3-10 所示。

注意:

使用相对路径.\release,以便将工程文件拷贝在不同的PC机上运行。

图3-10 指定单独的编译结果文件目录(相对路径)

9. 添加所需设计文件。

点击菜单项File->New 或者点击图标新建一个设计文件,选择Verilog HDL File,

如图3-11 所示,点击OK。建立Verilog 源代码文件。

图3-11 选择设计文件类型输入如下Verilog HDL 语言的设计代码:

10. 保存设计。点击菜单项File->Save、点击图标或者使用快捷键Ctrl+S 保存设计,

如图3-12 所示。给设计文件命名Counter,与模块名相同,注意不是Counter10,点击保

存。

图3-12 保存设计文件

11. 分析与综合。点击菜单项Processing->start->Start Analysis & Synthesis、点击图标

或者使用快捷键Ctrl+K 执行分析与综合。参看图3-13。

图3-13 执行start Analysis & Synthesis(开始分析与综合)

分析与综合完成后,编译出错,错误原因如图3-14 所示。

图3-14 分析与综合错误原因

顶层实体Counter10 未在源码中定义,必须更改顶层实体为Counter,这在多文件的工

程中经常需要用到。

将左侧的 Project Navigator 切到 Files 标签,对着 Counter.v 文件右击,选择S et as

Top-Level Entity,如图3-15。

图3-15 重新指定顶层实体

12. 重新执行分析与综合,结果如图3-16,出现了12 个警告,这是因为qsf 文件中记录的顶层实体在这一步执行时还未更新。

图3-16 分析与综合结果(第二次执行)

如果再次执行分析与综合,无论你是否删掉原先的编译结果,都会完全成功,如图3-17。

图3-17 分析与综合结果(第三次执行)

3.2电路仿真

13. 功能仿真。它是为了检查设计是否在理论上达到预期功能,该仿真不考虑期间实

际物理特性。首先创建仿真输入波形文件。仿真时需要对顶层实体的输入管脚提供激励信号,在Quartus 软件中可以通过波形文件方便的输入。点击菜单项File->New->Vector Waveform File,如图3-18 所示。

图3-18 创建波形文件

14. 添加信号结点。在空波形文件中点击右键,如图3-19 进行选择(或者直接双击)。

图3-19 添加结点右键菜单

单击Insert Node or Bus 后,出现如图3-20 所示对话框。

图3-20 添加结点对话框

选择Node Finder 按钮可以从结点列表中选择我们需要的,而避免一个一个输入结点

的麻烦。 实验二 十进制计数器实验

图 3-21 Node Finder 对话框

Fitter 选择 Pin:all ,点击 List 按钮。出现如图 3-22 所示的结点列表。

图 3-22 结点列表

简单起见,可以直接点>>按钮,将所有结点加入右侧 Select Nodes 栏中。完成后如图 3-23 所示。点击 OK 按钮确认。

图3-23 添加结点到右侧点击OK 后返回添加结点对话框。如图3-24 所示。

图3-24 添加结点后的对话框点击OK 确定,波形文件将如图3-25 所示。

图3-25 波形文件

15. 将iclk 设为方波。右击iclk 信号,选择value->clock..,如图3-26 所示。

图3-26 将iclk改为方波

在弹出的clock 设定对话框中把周期调整为20ns,如图3-27。Duty cycle 的意思是占空比,即是指高电平在一个周期之内所占的时间比率。

图3-27 时钟的周期设置

16. 将rst_n 改成低20ns 后持续高电平。选中rst_n 信号,单击左侧图标强制设为

高电平。在波形上拖动鼠标选中前20ns,单击左侧图标强制设为低电平。

完成后波形如图3-28 所示。输出波形可不管。

图3-28 波形文件

17. 保存波形文件counter.vwf,如图3-29,这里的命名可以随意。

图3-29 保存波形文件

18. 波形文件生成后,直接点击仿真按钮会提示错误,见图3-30,这是因为没有先产

生功能仿真网表。

图3-30 未生成网表错误

19. 要生成功能仿真网表,首先设置仿真模式。点击菜单项Assignment->Settings,选

中Simulator Settings 选项卡,出现图3-31 所示对话框。在Simulation mode 中选择Functional,Simulation input 选择刚才建立的波形文件,完成后点击OK。

图3-31 仿真模式设置对话框

点击菜单项Processing->Generate Functional Simulation Netlist,产生功能仿真所需的网

表,参看图3-32。完成后结果显示如图3-33。

图3-32 生成功能仿真网表的操作菜单项

图3-33 功能仿真网表产生结果显示图

20. 点击菜单项Processing->Start Simulation 或工具按钮启动功能仿真。如图3-34,

完成后结果显示如图3-35。

图3-34 仿真菜单项与按钮

图3-35 仿真结果

21. 配置引脚。仿真完成后,确认功能正确后,可以进行分配引脚的操作。根据所提

供的DE2-70 用户指导手册,将计数器的q 输出配置到DE2-70 开发板的 4 个绿LED

(LEDG[3]-LEDG[0])上,overflow 接LEDG[4],rst_n 接KEY[0],clk 接开关SW[0]。(参

考实验一)参考图3-36,注意Y24 不是V24。

图3-36 分配引脚图

注意:clock相关:DE2_70开发板没有办法直接输出低频方波,使用开关手动控制。

标或使用CTRL+L 执行全编译,如图3-37 所示。

图3-37 执行start compilation

编译结果如图3-38 所示。

图3-38 全编译结果显示

23. 时序仿真。其主要用途是查看实际设计的电路运行时是否满足延时要求,时序仿真考虑了电路实际运行的延时等因素。

单击菜单中Assignment->Settings,选中Simulator Settings 选项卡,在Simulation mode

中选择Timing,Simulation input 选择刚才建立的波形文件,完成后点击OK,如图3-39。

图3-39 仿真模式设置对话框(时序仿真)

特别注意:图3-31 和图3-39 区别了功能仿真和时序仿真。

如果是8.0 版,在左侧带问号的Quartus II Simulator (Timing)处右击start,启用时序仿

实验二十进制计数器实验

真,如图3-40A.

图3-40A 启用时序仿真

如果是7.2 版,由于没有Tasks 窗口,需要在Processing->Start 菜单按照A―E的步骤执行。如图3-40B 所示。每一步骤完成会弹出一个对话框,单击OK 或者确定。

图3-40B 时序仿真的后五步操作图解

仿真结果如图3-41 与3-42 所示。

图3-41 仿真结果图

图3-42 时序仿真波形

24. 将设计下载在 FPGA 中。完成设计后就可以下载到板上实际运行,点击菜单项

Tools->Programmer 或点击图标打开程序下载环境。点击start 开始下载。(参考实验一)

25. 手工拨动SW[0],测试实验结果。

3.3逻辑分析仪SignalTap II的使用

26. 首先将手工开关时钟换回50Mhz的时钟,否则由于时钟过于低速,SignalTap II

抓取不到波形。方法是在引脚配置中将iclk 指定AD15,之后全编译工程,并且下载运行!

可以看到绿灯有5 个在亮,最左边的暗一点,如图3-43A 所示。否则,很可能是引脚分配出错,如图3-43B 中出现了Y27 设成了V27 的错误。

图3-43A 5个灯都亮,正确。

图3-43B 只有4个灯亮,错误。

27. 新建SignalTap II 文件。点击菜单项File->SignalTap II Logic Analyzer File

图3-44 新建逻辑分析仪文件

图3-45 逻辑分析仪文件

由于窗口界面面积较小,可以通过文件左上角的按钮将文件子窗口与主窗口分离。

28. 选择硬件,首先连接号DE2-70,然后在文件右上的Hardware 下拉菜单中选择USB-Blaster,选好后应能自动识别出Device 是EP2C70。选择后的情况如图3-46 所示。

图3-46 选择硬件环境

29. 选择逻辑分析仪时钟,本实验中就以计数器时钟作为逻辑分析仪时钟。确认左下角的标签页是setup,然后点击右下侧SignalConfiguration 中的Clock 栏后的按钮。出现如图

3-47 所示。

图3-47 结点查找对话框

Fitter 选择SignalTap II:post-fitting,点击List 按钮,左侧出现可选结点,选择其中的iclk,点击中间的≥按钮。完成后如图3-48 所示。

图3-48 选择时钟结点

实验六Verilog设计分频器计数器电路

实验六Verilog设计分频器/计数器电路 一、实验目的 1进一步掌握最基本时序电路的实现方法; 2学习分频器/计数器时序电路程序的编写方法; 3进一步学习同步和异步时序电路程序的编写方法。 二、实验内容 1、用Verilog设计一个10分频的分频器,要求输入为clock(上升沿有效),reset(低电平复位),输出clockout为5个clock周期的低电平,5个clock周期的高电平),文件命名为fenpinqi10.v。 2、用Verilog设计一异步清零的十进制加法计数器,要求输入为时钟端CLK(上升沿)和异步清除端CLR(高电平复位),输出为进位端C和4位计数输出端Q,文件命名为 couter10.v。 3、用Verilog设计8位同步二进制加减法计数器,输入为时钟端CLK(上升沿有效)和异步清除端CLR(低电平有效),加减控制端UPDOWN,当UPDOWN为1时执行加法计数,为0时执行减法计数;输出为进位端C和8位计数输出端Q,文件命名为couter8.v。 4、用VERILOG设计一可变模数计数器,设计要求:令输入信号M1和M0控制计数模,当M1M0=00时为模18加法计数器;M1M0=01时为模4加法计数器;当M1M0=10时为模12加法计数器;M1M0=11时为模6加法计数器,输入clk上升沿有效,文件命名为mcout5.v。 5、VerilogHDL设计有时钟时能的两位十进制计数器,有时钟使能的两位十进制计数器的元件符号如图所示,CLK是时钟输入端,上升沿有效;ENA是时钟使能控制输入端,高电平有效,当ENA=1时,时钟CLK才能输入;CLR是复位输入端,高电平有效,异步清零;Q[3..0]是计数器低4位状态输出端,Q[7..0]是高4位状态输出端;COUT是进位输出端。

EDA实验报告

EDA 实验报告 姓名:汤灿亮 学号:2012118060 班级:1211自动化

实验一 QUARTUS Ⅱ的设计流程 一、实验目的: 1、掌握QUARTUSⅡ安装过程; 2、熟悉QUARTUSⅡ设计环境; 3、掌握QUARTUSⅡ的设计过程。 二、实验内容: 用文本输入法设计一个二进制加法器。 三、实验步骤: (一)、创建工作文件夹 在windows中新建一个文件夹(又称工作库或WORK LIBRARY),用于保存设计工程项目的有关文件。注:设计工程项目的所有有关文件不能保存在根目录下,必须保存在一个文件夹之下。例如建立的文件夹:E:\CNT10 (二)、启动Quartus II 点击QUARTUSⅡ9.0图标打开QUARTUSⅡ9.0设计窗口。或点击QUARTUSⅡ9.0图标打开QUARTUSⅡ9.0设计窗口 (三)、设计文件输入 1、打开输入文件编辑器 点击菜单File\new…选择Verilog HDL file建立一个文本设计文件。用文本输入法输入程序。 2、保存文件,文件名同程序的模块名。后缀.v (四)、全编译(逻辑综合) 1、创建工程 点击菜单File\New Project Wizard…….进行工程设置。完成工程文件夹的选定、工程名、顶层设计文件名(主程序)、编程器件的选择等工程设置。 2、编译前的相关设置设置 ⑴选择PLD芯片:Assignmenmts\Settings\Device弹出的窗口中选择选择芯片。 ⑵选择配置芯片的工作方式Assignmenmts\Settings\Device\Device&Pin Options弹出的窗口中首选General项,在Options栏中选择Auto-restart-configuration after error. ⑶选择配置芯片和编程方式:Assignmenmts\Settings\Device\Device&Pin Options弹出的窗口中选择Configuration栏,在窗口中设置配置方式,配置芯片和是否需要生成压缩的配置文件。 ⑷选择输出设置:(1)-(4)项默认方式,可以不做任何操作, ⑸选择目标器件闲置引脚的状态:Assignmenmts\Settings\Device\Device&Pin Options弹出的窗口中选择Unused Pins栏,在窗口中对闲置的引脚设置,推荐设置为As input tri-stated。 3、执行全程编译:Processing\Start Compilation。完成对设计项目的检

quartus软件及modelsim仿真实验报告

Verilog实验报告 实验一Quartus及Modelsim软件的基本使用 一、实验目的 熟悉Quartus和Modelsim软件的基本使用方法和步骤,熟悉基本的Verilog语法,学会用Verilog语言编写简单的程序。 二、实验要求 熟练掌握Quartus和Modelsim软件工程建立、添加文件、编译运行和仿真的方法,学会写程序文件和测试文件。 三、实验仪器和设备 1、硬件:计算机 2、软件:Quartus、Modelsim、(UE) 四、实验内容 1、运行Quartus软件建立工程并添加程序.v文件,编译运行,查看电路图。 2、运行Modelsim软件建立工程并添加测试.v文件,进行仿真,查看波形图。 五、实验方法和步骤 (一)Quartus软件的使用 1、启动Quartus软件:双击桌面的Quartus快捷图标,进入如图1所示的界面。 图1-1启动界面 2、建立工程:选择菜单栏的【File】→【New Project Wizard】命令,弹出图2所示新 建工程向导。

图1-2 新建工程向导 单击【Next】跳转至下一页。为方便工程管理,在新建工程之前,先新建一个文件夹,把工程保存在新建的文件下,并对工程进行命名。如图3所示。 图1-3命名和存放

单击【Next】跳转至下一页。添加事先写好的.v文件。如图4所示。 图1-4 添加文件 (此处也可不添加,直接在建立好的工程中,选择【File】→【New】命令,新建一个Verilog HDL File,如图5所示。 图1-5 新建.v文件)

单击【Next】跳转至下一页。选择FPGA型号,如图6所示。因为本次实验不在硬件上实现,因此此步跳过。直接单击【Next】跳转至下一页。 图1-6 选择FPGA型号 直到出现【Summary】界面,单击【Finish】。如图7所示。 图1-7结束

verilog模4计数器实验报告

Lab 5 模4递增计数器 王阳IS1102班U201114066 1.实验目的 学会用Quartus 9.1编译Verilog语言的方法和步骤;设计简单的程序,并能运行;了解触发器,并学会利用触发器制作模4递增计数器。 2.实验内容 ●在模4递增计数器中,由cp时钟信号控制输入; ●由两个D触发器组合而得到模4递增计数器; ●简单的模4计数器由cp作为开关控制输入,由Q0和Q1两个LED灯控制输出。 3.代码分析 1)首先,定义module的输入输出接口; 2)然后,建立程序,分为模4递增计数器主块和D触发器块; 3)模4递增计数器的实现分为2个块,如下: 模4递增计数器块: module mo4(Q0,Q1,cp); output Q0,Q1; input cp; d_ff f0(Q0,~Q0,cp);//调用D触发器 d_ff f1(Q1,~Q1,Q0); //调用D触发器 endmodule D触发器块: module d_ff (Q,D,cp);//D触发器块 output Q; input D,cp; reg Q; always @(posedge cp) Q<=D; endmodule

4.实验步骤 1)连接DE0板:连接DE0板的电源线和数据线或直接将数据线接到电脑主机上,打 开开关。 2)创建项目:打开Quartus9.1软件,选择“File—>New Project Wizard”,在弹出的窗 口中输入项目的名称和存储位置。这里笔者将文件储存在桌面的临时文件夹中,并 取名为chufaqi\mo4,如下: 确定输入完成后,单击Next,出现下图:

10进制计数器

课程设计任务书 学生姓名:黄思羽专业班级:自动化0607 指导教师:李向舜工作单位:自动化学院 题目: 10进制计数器 初始条件: 1.Quartus4.1以上版本软件; 2.课程设计辅导资料:“数字电路EDA入门”、“VHDL程序实例集”、“EDA技术 与VHDL”、“EDA与数字系统设计”等; 3.先修课程:电路、电子设计EDA、电子技术基础等。 4.主要涉及的知识点: 门电路、组合逻辑电路、时序逻辑电路等。 要求完成的主要任务:(包括课程设计工作量及其技术要求,以及说明书撰写等 具体要求) 1.课程设计时间:1周; 2.课程设计内容:根据指导老师给定的题目,按规定选择其中1套完成; 3.本课程设计统一技术要求:研读辅导资料对应章节,对选定的设计题目进行理 论分析,针对具体设计部分的原理分析、建模、必要的推导和可行性分析,画出程序设计框图,编写程序代码(含注释),上机调试运行程序,记录实验结果(仿真结果),并对实验结果进行分析和总结。具体设计要求包括: ①复习EDA的相关技术与方法; ②掌握VHDL或者Verilog语言,并要求能编写程序。 ③Quartus软件的使用:掌握程序编辑、编译、调试、仿真方法。 ④设计相关简单的电路,完成既定的功能。 4.课程设计说明书按学校“课程设计工作规范”中的“统一书写格式”撰写,具 体包括: ①目录; ②计数器相关的理论分析、归纳和总结; ③10进制计数器的结构组成及原理分析。 ④程序设计框图、程序代码(含注释); ⑤给出程序中主要函数或者语句的功能说明和使用说明; ⑥给出程序仿真运行结果和图表、以及实验结果分析和总结; ⑦课程设计的心得体会(至少500字); ⑧参考文献; ⑨其它必要内容等。

verilog实验

实验二:组合逻辑电路设计 一、实验目的: 学习组合逻辑电路,学习译码器的功能与定义,学习Verilog语言。 二、实验内容: 编写3-8译码器的Verilog 代码并仿真,编译下载验证。 三、实验环境 PC 机(Pentium100 以上)、Altera Quartus II 6.0 CPLD/FPGA 集成开发环境、AR1000核心板、SOPC-MBoard板、ByteBlaster II 下载电缆。 四、实验原理 译码是编码的逆过程,它的功能是将特定含义的二进制码进行辨别,并转换成控制信号,具有译码功能的逻辑电路成为译码器。 译码器可分为两种类型,一种是将一系列代码转换成与之一一对应得有效信号。这种译码器可以称为唯一地址译码器,它常用于计算机中对存储器单元地址的译码,即将每一个地址代码换成一个有效信号,从而选中对应的单元。另一种是将一种代码转换成另一种代码,所以也称为代码变换器。 五、实验过程 1.代码

2.编译成功 3.波形simulation

4.仿真波形图

实验三:时序逻辑电路设计(一) 一、实验目的: 学习时序逻辑电路,学习计数器的原理,学习Verilog。 二、实验内容: 编写一个带预置输入,清零输入,可加/可减计数器的Verilog 代码并仿真。 三、实验环境 PC 机(Pentium100 以上)、Altera Quartus II 6.0 CPLD/FPGA 集成开发环境。 四、实验原理 计数器是数字系统中用的较多的基本逻辑器件。它不仅能记录输入时钟脉冲的个数,还可以实现分频、定时等功能。 计数器的种类很多。按脉冲方式可以分为同步计数器和异步计数器;按进制可以分为二进制计数器和非二进制计数器;按计数过程数字的增减,可分为加计数器、减计数器和可逆计数器。 本实验就是设计一个4位二进制加减法计数器,该计数器可以通过一个控制信号决定计数器时加计数还是减计数,另外,该寄存器还有一个清零输入,低电平有效。还有一个load装载数据的信号输入,用于预置数据;还有一个C的输出,用于计数器的级联。其功能表如表3-1所示;管脚定义如图3-1所示。 R CLK load up_down 状态 L x x x 置零 H x L x 置数 H ↑H 0 减法 H ↑H 1 加法 表3-1 4位二进制加减法计数器功能表

含有异步清零同步时钟使能和同步数据加载功能的十进制计数器

含有异步清零同步时钟使能和同步数据加 载功能的十进制计数器 实验目的:了解硬件计数器的工作原理 熟悉QuartusII及其使用Verilog 语言编写代码 设计一个功能全面十进制计数器 Quartus II简介 Quartus II 是Altera公司的综合性PLD/FPGA开发软件,支持原理图、VHDL、VerilogHDL 以及AHDL等多种设计输入形式,内嵌自由的综合器以及仿真器,可以完成从设计输入到硬件配置的完整PLD设计流程。 Quartus II 可以在XP、Linux以及Unix上使用,除了可以使用TCL脚本完成设计流程外,提供了完善的用户图形界面设计方式。具有运行速度快,界面统一,功能集中,易学易用等特点。 Quartus II 支持Altera的IP核,包括了LPM/MegaFunction宏功能模块库,使用户可以充分利用成熟的模块,简化了设计的复杂性,加快了设计速度。对第三方EDA工具的良好支持也使用户可以在设计流程的各个阶段使用熟悉的第三方EDA工具。 此外,Quartus II 通过和DSP Builder工具和Matlab/Simulink相结合,可以方便地实现各种DSP应用系统;支持Altera的片上可编程系统(SOPC)开发,集系统级设计、嵌入式软件开发、可编程逻辑设计于一体,是一种综合性的开发平台。 Maxplus II 作为Altera的上一代PLD设计软件,由于其出色的易用性而得到了广泛的应用。目前Altera已经停止了对Maxplus II 的更新支持,Quartus II 与之相比不仅仅是支持器件类型的丰富和图形界面的改变。Altera在Quartus II 中包括了许多诸如SignalTap II、Chip Editor 和RTL Viewer的设计辅助工具,集成了SOPC和HardCopy设计流程,并继承了Maxplus II友好的图形界面及简便的使用方法。 Altera Quartus II 作为一种可编程逻辑的设计环境,由于其强大的设计能力和直观易用的接口,越来越受到数字系统设计者的欢迎。 含有异步清零同步时钟使能和同步数据加载功能的十进制计数器的程序: module jishu (CLK,RST,EN,LOAD,COUT,DOUT,DATA); input CLK,EN,RST,LOAD; input [3:0] DATA; output [3:0] DOUT; output COUT; reg [3:0] Q1; reg COUT; assign DOUT=Q1; always @(posedge CLK or negedge RST) begin if(!RST) Q1<=0; else if (EN) begin if(!LOAD) Q1<=DATA; else if(Q1<9) Q1<=Q1+1; else Q1<=4'b0000;

基于FPGA的计数器设计

EDA课程设计 工程名称基于FPGA地计数器地设计专业班级通信102班 学生姓名青瓜 指导教师 2013年 5 月28 日

摘要 本课程设计要完成一个1 位十进制计数器地设计.计数器是大规模集成电路中运用最广泛地结构之一.在模拟及数字集成电路设计当中, 灵活地选择与使用计数器可以实现很多复杂地功能, 可以大量减少电路设计地复杂度和工作量.讨论了一种可预置加减计数器地设计, 运用Ver ilog H DL 语言设计出了一种同步地可预置加减计数器, 该计数器可以根据控制信号分别实现加法计数和减法计数, 从给定地预置位开始计数, 并给出详细地VerilogHDL 源代码.最后, 设计出了激励代码对其进行仿真验证, 实验结果证明该设计符合功能要求, 可以实现预定地功能. 关键词:计数器;VerilogHDL;QuartusⅡ;FPGA;

Abstract This course is designed to complete a one decimal counter design. The counter is LSI structure in one of the most widely used. In the analog and digital IC designs, the flexibility to select the counter can achieve a lot with the use of complex functions, can significantly reduce the complexity of circuit design and workload. Discusses a presettable down counter design, using Ver ilog H DL language designed a synchronous presettable down counter, the counter can be implemented according to the control signals are counted Addition and subtraction counting from a given the preset starts counting, and gives detailed VerilogHDL source code. Finally, the design of the incentive code its simulation, experimental results show that the design meets the functional requirements, you can achieve the intended function. Key words: Decimal counter。VerilogHDL。Quartus Ⅱ。FPGA。

Verilog 实验报告 秒表

Verilog HDL实验报告基于Verilog HDL的数字秒表 班级:信科14-04班 姓名:温华强 学号:08143080 教师:王冠军

基于Verilog HDL的数字秒表 一、秒表功能 1. 计时范围:00:00:00—59:59:99 2. 显示工作方式:八位数码管显示 3.具有暂停和清零的功能 二、实验设计原理 1、秒表的逻辑结构较简单,它主要由十进制计数器、六进制计计数器、分频器、数据选择器和显示译码器组成,在整个秒表中最关键的是如何获得一个精确的100HZ计时脉冲,除此之外,整个秒表还需有一个启动信号和一个清零信号,以便秒表能随意停止、启动以及清零复位。 2、秒表有共有8个输出显示,其中6个显示输出数据,分别为百分之一秒,十分之一秒,秒,十秒,分,十分,所以共有6个计数器与之相对应,另外两个为间隔符,显示‘-’。8个计数器的输出全都为BCD码输出,这样便与同显示译码器连接。 3、可定义一个24位二进制的寄存器hour用于存放8个计数器的输出,寄存器从高位到低位每连续4位为一组,分别存放百分之一秒,十分之一秒,间隔符,秒,十秒,间隔符,分,十分,由频率信号输出端输出频率为100HZ的时钟信号输入到百分之一秒模块的时钟端ckl,百分之一秒模块为100进制的计数器,当计数器到“1001”时,百分之一秒模块清零,同时十分之一秒模块加1,十分之一秒模块也为100进制的计数器,当计数到“1001”时,十分之一模块清零,同时秒模块加1;以此类推,一直到分模块计数器到59进59。 秒表计数单位与对应的输出信号 4、为了消除按键消抖问题,定义寄存器key-inner来存储按键key的输入信号,key-flag作为启动/暂停的转换标志,key-inner[0]出现一个下降沿时,key-flag取反一次,当key-flag为0时计数器启动,1时计数器暂停,当key-flag 为1同时key-inner[1]为9时,计数器清零。

七段数码管的动态扫描显示实验

七段数码管的动态扫描显示实验 一、实验名称:七段数码管的动态扫描显示实验 二、实验目的: (1)进一步熟悉QuartusII软件进行FPGA设计的流程 (2)掌握利用宏功能模块进行常用的计数器,译码器的设计(3)学习和了解动态扫描数码管的工作原理的程序设计方法 三、实验原理: 实验板上常用4位联体的共阳极7段数码管,其接口电路是把所有数码管的8个笔划段a-h同名端连在一起,而每一个数码管由一个独立的公共极COM端控制。 当向数码管发送字形码时,所有数码管都接收到相同的字形码时,但究竟是那个数码管亮,取决于COM端,这一端是由I/O控制的,所以就可以自行决定何时显示哪一位。动态扫描即采用分时方法,轮流控制各个LED轮流点亮。 在轮流点亮扫描过程中,每一位显示器的点亮时间是极为短暂的,但由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上每个显示器并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感。 四、实验要求: 实现显示0000-9999的十进制计数器。 五、实验步骤

1.建立工程 建立名为leddisplay的工程,并建立顶层图。 2.设计技术时钟 设计一分频器,对50MHz分频输出到计数器,让计数器以较慢速度递增。打开File..New,新建一个.v文件。输入以下程序:module int_div(clk, div_out); input clk; output reg div_out; reg [31:0] clk_div; parameter CLK_FREQ = 'D50_000_000; //系统时钟50MHz parameter DCLK_FREQ = 'D10; //输出频率10/2Hz always @(posedge clk) begin if(clk_div < (CLK_FREQ/DCLK_FREQ))

模可变计数器设计(Verilog语言)解答

模可变计数器设计 (一)实验目的 1、进一步熟悉实验装置和QuartusⅡ软件的使用; 2、进一步熟悉和掌握EDA设计流程; 3、学习简单组合、时序电路的EDA设计; 4、学习计数器中二进制码到BCD码的转换技巧; 5、学习实验装置上数码管的输出方法。 (二)设计要求 完成设计、仿真、调试、下载、硬件测试等环节,在EDA实验装置上实现模可变计数器功能,具体要求如下: 1、设置一个按键控制改变模值,按键按下时模为10-99之间(具体数值自行确定)的 数,没按下时模为100-199之间(具体数值自行确定)的数; 2、计数结果用三位数码管十进制显示。 (三)主要仪器设备 3、微机1台 4、QuartusII集成开发软件1套 5、EDA实验装置1套 (四)实验步骤 主要有三个模块 1:一个模20和模119的计数器 2:数码管的显示 3:BCD的调整 源程序: module count (clk,m,en,rst,a,sel,SG,d); input clk,m,en,rst; output [7:0] SG; output [2:0] sel; output a; (* synthesis, keep *) reg clk1; (* synthesis, keep *) wire [3:0] gw,sw,bw; /*(* synthesis, keep *) */reg [3:0]a; reg [11:0] q; reg [11:0] model;

reg [7:0] cnt,SG; reg [2:0] sel; reg [0:0]d; output [0:0]d; always @(posedge clk) begin cnt=cnt+1; if (cnt==200) begin clk1=1'b1; cnt=0; end else clk1=1'b0; //200分频,CLK为数码管扫描频率,CLK1为计数频率 if (sel<2) sel=sel+1; else sel=0; end //sel为数码管选择 always @(sel) begin case (sel) 0: a=bw; //0数码管为百位 1: a=sw; //1数码管为十位 2: a=gw; //2数码管为个位 default: a=0; endcase case (a) 0:SG<=8'b00111111; 1:SG<=8'b00000110; 2:SG<=8'b01011011; 3:SG<=8'b01001111; 4:SG<=8'b01100110; 5:SG<=8'b01101101; 6:SG<=8'b01111101; 7:SG<=8'b00000111; 8:SG<=8'b01111111; 9:SG<=8'b01101111; //8段译码值 default: SG=8'b11111111; endcase end always @(m) if (m) model=12'b000000100000; //模值20 else model=12'b000100011001; //模值119 assign gw=q[3:0]; assign sw=q[7:4]; assign bw=q[11:8]; always @(posedge clk1,negedge rst) begin if (!rst) q=0; else if (en) begin if (q

实验一 Quartus II使用与基本逻辑电路的设计

实验一Quartus II使用与基本逻辑电路的设计 [实验目的] 1、熟悉Quartus II的文本输入方式, 掌握其编辑、编译综合、仿真的操作方法; 2、学习Quartus II环境下的编程下载及硬件测试方法; 3、学习应用QuartusII完成基本时序电路设计; 4、应用QuartusII完成基本组合电路的设计。* [实验仪器] PC机、EDA实验箱一台 Quartus II 6.0软件 [实验内容] (1) 实验内容1:在QuartusⅡ上输入该设计的文本,并进行编辑、编译、综合、适配、仿真。说明设计中各语句的作用,详细描述设计的功能特点,给出其所有信号的时序仿真波形。 (2) 实验内容2:引脚锁定以及硬件下载测试。引脚锁定后进行编译、下载和硬件测试实验。将实验过程和实验结果写进实验报告。 * (3) 实验内容3:使用SignalTap II对此计数器进行实时测试,流程与要求参考4.3节。 * (4) 实验内容4:从设计中去除SignalTap II,要求全程编译后生成用于配置器件EPCS1编程的压缩POF文件,并使用ByteBlasterII,通过AS模式对实验板上的EPCS1进行编程,最后进行验证。 *(5) 实验内容5:为此项设计加入一个可用于SignalTap II采样的独立的时钟输入端(采用时钟选择clock0=12MHz,计数器时钟CLK分别选择256Hz、16384Hz、6MHz),并进行实时测试。 [实验原理] 数字逻辑电路中,根据逻辑功能的不同特点,可以把数字逻辑电路分成组合逻辑电路和 时序逻辑电路两大类用。在组合逻辑电路中,任意时刻的输出仅仅取决于该时刻的输入,与 电路的原来状态无关;在时序逻辑电路中,任一时刻的输出信号不仅取决于当时的输入信号, 而且还取决于电路原来的状态,也就是与电路原来的状态有关。在数字系统中使用的最多的 时序电路要算是计数器了。计数器应用非常广泛,可以以用于对时钟脉冲的计数,还可以用 于分频、定时、产生节拍脉冲和脉冲序列等。在一些测试设备中也有很重要的作用。计数器 是数字系统中的重要组成部分,本实验拟设计一个同步加计数的十进制计数器。要求设计具 有如下功能:1、有同步时钟使能(即只有在使能信号作用下才允许计数),2、异步清0(只 要清零信号有效则计数器变为全0)功能。 [实验步骤] 一、建立设计项目文件夹并编辑文本文件 建立和编辑一个图形文件,是数字系统或数字逻辑电路设计的第一步,该软件运行在Windows NT或Windows XP环境下。 1、建立工作库文件夹

十进制计数器VHDL描述及操作流程6

第二章软硬件操作流程 2.1 十进制计数器流程 2.11 建立工作库文件夹和编辑设计文件 任何一项设计都是一项工程(Project),都必须首先为此工程建立一个放置与此工程相关的所有设计文件的文件夹。此文件夹将被EDA软件默认为工作库(Work Library)。一般,不同的设计项目最好放在不同的文件夹中,而同一工程的所有文件都必须放在同一文件夹中。在建立了文件夹后就可以将设计文件通过Quartus II的文本编辑器编辑并存盘,步骤如下:(1)新建一个文件夹。这里假设本项设计的文件夹取名为CNT10B,在D盘中,路径为d:\cnt10b 。注意,文件夹名不能用中文,也最好不要用数字。 (2)输入源程序。打开QuartusII,选择菜单File→New。在New窗口中的Device Design Files中选择编译文件的语言类型,这里选择“VHDL File”(如图2-1所示)。然后在VHDL 文本编译窗中输入(键入)例3-22所示的VHDL示例程序。 图2-1 选择编辑文件的语言类型 《示例程序和实验指导课件位置》:\EDA_BOOK3_FOR_1C6\chpt4\EXPT53_cnt10\工程cnt10 【例3-22】 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY CNT10 IS PORT (CLK,RST,EN : IN STD_LOGIC; CQ : OUT STD_LOGIC_VECTOR(3 DOWNTO 0); COUT : OUT STD_LOGIC ); END CNT10; ARCHITECTURE behav OF CNT10 IS BEGIN PROCESS(CLK, RST, EN) VARIABLE CQI : STD_LOGIC_VECTOR(3 DOWNTO 0); BEGIN IF RST = '1' THEN CQI := (OTHERS =>'0') ; --计数器异步复位 ELSIF CLK'EVENT AND CLK='1' THEN --检测时钟上升沿 IF EN = '1' THEN --检测是否允许计数(同步使能) IF CQI < 9 THEN CQI := CQI + 1; --允许计数, 检测是否小于9 ELSE CQI := (OTHERS =>'0'); --大于9,计数值清零 END IF; END IF; END IF; IF CQI = 9 THEN COUT <= '1'; --计数大于9,输出进位信号 ELSE COUT <= '0'; END IF; CQ <= CQI; --将计数值向端口输出

4线2线译码器

4线2线译码器

4线2线优先编码器和十进制加减可逆计数器设计 1设计目标 A :掌握可编程逻辑器件的应用开发技术一一 设 计输入、编译、仿真和器件编程; 熟悉一种EDA 软件使用与实验系统介 绍; 掌握Verilog HDL 设计方法; 设计一个4线2线优先编码器,其功能如 下表所示: 专业:自动化 学号:XXXXXXXX 学生:XXXX

功能要求:①满足以上功能表 ②在实验板的发光二级管或 编译显示电路,显示结果 B:用verilog HDL语言设计一个模为10的可逆计数器,能自动实现加减可逆计数,也能手 动实现加/减计数 用实验板上的译码显示电路, 显示结果2实验装置 586计算机,MAX+plus II 10・2软件,专用编 程电缆,EDA Pro2K数字实验装置等。 3设计步骤和要求 ①在MAX+plus II 10.2软件中,输入设计的原理图。

②对电路进行仿真分析; ③选择器件,分配引脚,重新对设计项目进行编译和逻辑综合; ④对EDA Pro2K数字实验装置中的FPGA器件 进行在系统编程,并实际测试电路的逻辑功能; 4具体步骤 4.1 建立Quartus工程; 1 •打开Quartus II工作环境 2.点击菜单项F订e->New Project Wizard帮助新建工程 3.输入工程工作路径、工程文件名以及顶层实体名 4.添加设计文件 5.选择设计所用器件 6.设置EDA工具 7.查看新建工程总结 在完成新建后,Quartus II界面中Project Navigator 的Hierarchy 标签栏中会 出现用户正在设计的工程名以及所选用的器件型号

FPGA参考资料

2.实验内容 MagicSOPC 实验箱上有8个按键KEY1~KEY8和8个发光二级管LED1~LED8。其硬件原理图如图1.25所示。 本实验的内容是要求在MagicSOPC实验箱上完成对8个按键KEY1~KEY8进行监控,一旦有键输入判断其键值,并点亮相应个发光二级管,如若KEY3按下,则点亮LED1~LED3发光管。 3.实验原理 FPGA的所有I/O控制块允许每个I/O引脚单独配置为输入口,不过这种配置是系统自动完成的,一旦该I/O口被设置为输入口使用时(如定义key0为输入引脚:input key0 :),该I/O控制模块将直接使三态缓冲区的控制端接地,使得该I/O引脚对外呈高阻态,这样改I/O引脚即可用作专用输入引脚。只要正确分配并锁定引脚后,一旦在KEY1~KEY8中有键输入,在检测到键盘输入的情况下,继续判断其键盘值并作出相应的处理。 4.实验步骤 1)启动QuartusⅡ建立一个空白工程,然后命名为keyled.qpf。 2)新建Verilog HDL 源程序文件keyled.v,键入程序代码并保存(完整的Verilog HDL 程序参考程序清单 3.3),进行综合编译,若在编译过程中发现错误,则找出并更正错误,直至编译成功为止。 3)选择目标器件并对相应的引脚进行锁定,在这里所选择的器件为Altera公司Cyclone Ⅱ系列的EP2C35F672C8 芯片,引脚锁定方法如表3.4所列。将未使用的引脚设置为三态输入(一定要设置,否则可能会损坏芯片)。设置方法见3.1节。 图3.27 I/O分配时I/O标准的选择 表 3.4 引脚锁定方法 4)对该工程文件进行全程编译处理,若在编译过程中发现错误,则找出并更正错误,直至编译成果为止。 5)最后把程序下载到FPGA器件中。观察发光管LED1~LED8 的亮灭,按下KEY1~KEY 的任一键,再次观察发光管的状态。

数字系统设计与Verilog HDL

数字系统设计与Verilog HDL (复习) EDA(Electronic Design Automation) 就是以计算机为工作平台,以EDA软件工具为开发环境,以PLD器件或者ASIC专用集成电路为目标器件设计实现电路系统的一种技术。 1.电子CAD(Computer Aided Design) 2.电子CAE(Computer Aided Engineering) 3.EDA(Electronic Design Automation) EDA技术及其发展 p2 EDA技术的应用范畴 1.3 数字系统设计的流程

基于FPGA/CPLD 的数字系统设计流程 1. 原理图输入(Schematic diagrams ) 2、硬件描述语言 (HDL文本输入) 设计输入 硬件描述语言与软件编程语言有本质的区别 综合(Synthesis) 将较高层次的设计描述自动转化为较低层次描述的过程 ◆行为综合:从算法表示、行为描述转换到寄存器传输级(RTL) ◆逻辑综合:RTL级描述转换到逻辑门级(包括触发器) ◆版图综合或结构综合:从逻辑门表示转换到版图表示,或转换到PLD器件的配置网表表示

综合器是能自动实现上述转换的软件工具,是能将原理图或HDL语言描述的电路功能转化为具体电路网表的工具 适配 适配器也称为结构综合器,它的功能是将由综合器产生的网表文件配置于指定的目标器件中,并产生最终的可下载文件 对CPLD器件而言,产生熔丝图文件,即JEDEC文件;对FPGA器件则产生Bitstream 位流数据文件 p8 仿真(Simulation) 功能仿真(Function Simulation) 时序仿真(Timing Simulation) 仿真是对所设计电路的功能的验证 p9 编程(Program) 把适配后生成的编程文件装入到PLD器件中的过程,或称为下载。 通常将对基于EEPROM工艺的非易失结构PLD器件的下载称为编程(Program),将基于SRAM 工艺结构的PLD器件的下载称为配置(Configure)。 习题 1.1 现代EDA技术的特点有哪些? 1.2 什么是Top-down设计方式? 1.3 数字系统的实现方式有哪些?各有什么优缺点? 1.4 什么是IP复用技术?IP核对EDA技术的应用和发展有什么意义? 1.5 用硬件描述语言设计数字电路有什么优势? 1.6 基于FPGA/CPLD的数字系统设计流程包括哪些步骤? 1.7 什么是综合?常用的综合工具有哪些?

轻松玩转FPGA考试

轻松玩转FPGA考试 作者笔记 首先特权同学学FPGA的历程是没有老师教的,学Verilog HDL第三天就可以自己学着编程了。一个星期就掌握学校板子的所有外设编程了,期间也走了不少弯路。 这篇文章主要是围绕考试所编写的。 首先我先说明我这篇文章主要讲些什么。 前言 首先特权同学会讲VHDL和Verilog HDL之间关于考试的优胜略汰。第二部分讲一些考试应该学会些什么,一些小的考试肯定会出现的一些模块是做什么用的(就是三八译码器,锁存器,分频器等等是做什么用的),其中用Verilog语法做出这些模块,并给出通用的改法,当然如果学VHDL可以看看模块具体有什么用处,可以改老师的程序也得心应手。第三部分讲一些学校板子外设的知识(板子上看的见的东西)。第四部分讲顶层模块图的搭建。 因为实验老师曾经说过一句话我很在意,考试难度是实验1-6的难度,唯独排除实验7,特权同学认为7的难度在6之下,但是7和之前的实验比较唯一的就是自己设计逻辑,也就是有一个模块必须知道VHDL语言或者Verilog语言才能编写出这个模块来。而其他的实验则是靠一些小模块搭建成顶层图实现功能,也就是说只要知道各个小模块,和板子外设的知识就可以过考试。当然王晓飞的为人,也不能不考虑出自己编逻辑模块的可能性。所以两手准备我把Verilog语法放在附录中,而各个模块程序解释我也写在里面,如果仔细研究,也可以完全掌握语法。 总的来说硬件描述语言,和软件语言有比较大的差异,需要勤加编程,才能熟悉语法,希望读者努力练习,王晓飞也说过可以用verilog考试。

一.VHDL和Verilog HDL的区别和考试中的各自优势 (3) 二.基本模块设计 (3) 1.分频器 (3) 2.计数器 (9) 3.锁存器 (10) 4.比较器 (11) 5.D触发器 (12) 6.移位寄存器 (12) 7.38译码器和编码器 (13) 8.选择器 (14) 三.常用外设编程和实现(除矩阵键盘外所有外设) (15) 1.数码管 (15) 2.SW按键(左下角) (17) 3.指示灯(左上角) (17) 4.8X8点阵 (18) 5.脉冲按键 (21) 四.顶层原理图搭建技巧 (23) 附录Verilog自编简易语法 (28)

VerilogHDL十进制计数器实验Quartus90非常详细的步骤(精)

实验二十进制计数器实验该实验将使用Verilog 硬件描述语言在DE2-70 开发平台上设计一个基本时序逻辑电路——1 位十进制计数器。通过这个实验,读者可以了解使用Quartus 工具设计硬件的基本流程以及使用Quartus II 内置的工具进行仿真的基本方法和使用SignalTap II 实际观察电路运行输出情况。SignalTap II 是Quartus 工具的一个组件,是一个片上的逻辑分析仪,可以通过JTAG 电缆将电路运行的实际输出传回Quartus 进行观察,从而省去了外界逻辑分析仪 时的很多麻烦。 实验步骤 3.1建立工程并完成硬件描述设计 1. 打开Quartus II 工作环境,如图3-1 所示。 图3-1 Quartus II工作环境界面 2. 点击菜单项File->New Project Wizard 帮助新建工程。参看图3-2。 图3-2 选择New Project Wizard 打开Wizard 之后,界面如图3-3 所示。点击Next,如图3-3。 第23 页共208 页

图3-3 New Project Wizard界面 3. 输入工程工作路径、工程文件名以及顶层实体名。 这次实验会帮助读者理解顶层实体名和工程名的关系,记住目前指定的工程名与顶层 实体名都是Counter10,输入结束后,如图3-4 所示。点击Next。 图3-4输入设计工程信息 4. 添加设计文件。界面如图3-5 所示。如果用户之前已经有设计文件(比如.v 文件)。

那么再次添加相应文件,如果没有完成的设计文件,点击Next 之后添加并且编辑设计文件。 图3-5添加设计文件 5. 选择设计所用器件。由于本次实验使用Altera 公司提供的DE2-70 开发板,用户 必须选择与DE2-70 开发板相对应的FPGA 器件型号。 在Family 菜单中选择Cyclone II,Package 选FBGA,Pin Count 选896,Speed grade 选6,确认Available devices 中选中EP2C70F896C6,如图3-6。 图3-6选择相应器件 6. 设置EDA 工具。设计中可能会用到的EDA 工具有综合工具、仿真工具以及时序

相关主题