基于FPGA十进制同步计数器

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

十进制同步计数器

一、实验目的

1.学习十进制同步计数器的Verilog硬件设计

2.学会并掌握Quartus II软件的使用

3.学会并掌握modelsim仿真软件的使用

二、实验原理

进制计数器具有电路结构简单、运算方便等特点,但是日常生活中我们所接触的大部分都是十进制数,特别是当二进制数的位数较多时,阅读非常困难,还有必要讨论十进制计数器。在十进制计数体制中,每位数都可能是0,1,2,…,9十个数码中的任意一个,且“逢十进一”。根据计数器的构成原理,必须由四个触发器的状态来表示一位十进制数的四位二进制编码。

第2个计数脉冲来到后,其状态为0010。以下类推,可以得到如表1所示的状态表。但需注意:在第9个脉冲来到后,亦即计数器处于1001态时,低电平封住了F2的置1端,Q1的高电平又使K4=1,故第十个计数脉冲来到后,F2、F3状态不变,F1、F4同时置0,计数器跳过多余的6个状态,完成一次十进制计数循环。

表1 同步十进制加法计数器状态表

为了满足十进制加法计数器的原理,本实验用Verilog程序在FPGA/CPLD 中来实现。首先设计一个程序,程序为脉冲输入,设输出的四位码为q[3:0],十进制计数值为count,脉冲上升沿时q值+1,直到q=9时count=1,q置零重新开始计数直至下一个q=9,count=2,依次循环。

三、实验任务

1.根据实验目的编写verilog程序

2.将设计好的Verilog译码器程序在Quartus II上进行编译

3.对程序进行适配、仿真,给出其所有信号的时序仿真波形图(注意仿真波形

输入激励信号的设置)。本实验要求自己设置clr值,理解清零的意义

四、实验步骤:

1.建立工作库文件和编辑设计文文件

任何一项设计都是一项Project(工程),而把一个工程下的所有文件放在一个文件夹内是一个非常好的习惯,以便于我们整理,利用和提取不同工程下的文件,而此文件夹将被EDA软件默认为Work Library(工作库),所以第一步先根据自己的习惯,建立个新的文件夹。

(1)新建文件夹:在E盘建立并保存工程,文件夹取名myproject,工程取名为cnt10_1

(2)输入源程序:打开Quartus II,选择菜单File-->New-->Design Files-->VerilogHDL File-->OK(如下图所示)

代码如下:

module cnt10_1(clr, clk, q, cout);

input clr, clk;

output[3:0] q;

output cout;

reg[3:0] q;

reg cout;

always @(posedge clk)

begin

if (clr) q = 0;

else begin

if (q == 9) q = 0;

else q = q + 1;

if (q == 0) cout = 1;

else cout = 0;

end

end

endmodule

(3)保存文件:完成一步就保存一步是一个好习惯,这样即使出现意外情况,也不至于以前的努力付诸东流。选择File-->Save as,选择保存路径,即刚才新建的文件夹myproject,文件名应与实体名保持一致,即cnt10_1,点击保存后会跳出“Do you want to create a new project with this file?”选择“是”,则进入如下界面

点击Next,进入“工程设置”对话框,如图所示

第一行表示工程所在的文件夹,第二行为工程名,可以与顶层文件的实体名保持一致,也可以另取别的名字,第三行为当前工程顶层文件的实体名。

点击next,进入ADD FILE对话框,如图所示,单击Add All 按钮,将工程

相关的所有VHDL文件加进工程,也可以单击“Add...”选择性加入,按此步骤建立工程,工程已经自动将所有文件加进去了,可以直接点击next,当先直接建立工程时,需要自己添加。

(4)选择目标芯片:我们选用的是CycloneIII系列的EP3C55F484C8,在Family栏选择芯片系列——CycloneIII,在窗口右边的三个下拉列表框选择过滤条件,分别选择Package为FBGA、Pin count为484和Speed grade为8,点击Next,如图所示

(5)工具设置:进入EDA工具设置窗口,有三个选项,分别是选择输入的HDL类型和综合工具、选择仿真工具、选择时序分析工具,这是除Quartus II 自含的所有设计工具以外的外加的工具,如果不作选择的,表示仅选择Quartus II自含的所有设计工具,本次不需要其他的设计工具,可以直接点击Next

(6)结束设置:进入“工程设置统计”窗口,列出了与此工程相关的设置情况,

设置完成,点击Finish。

2.编译

配置好后就可以进行编译了,点击Processing Start Compilation命令,启动全程编译编译成功后的界面如图所示

3.时序仿真

(1)打开波形编辑器:File-->New-->Verification/Debugging Files-->Vector Waveform-->OK,即出现空白的波形编辑器,如图所示

(2)设置仿真时间区域:Edit-->End Time在Time栏中输入50,单位选择“us”,点击确定并保存波形文件

(3)将工程cnt10_1的端口信号名选入波形编辑器中:View-->Utility windows-->Node Finder,在Filter框中选Pins:all(通常是默认选项),然后点击List,则显示出了所有引脚,如图所示

将重要的端口名拖进波形编辑器后关闭窗口

(4)编辑输入波形:首先进行总线数据格式设置和参数设置:点击信号左边的+号,能展开此总线中的所有信号;如果双击此+号左边的信号标记,将弹出对该信号数据格式设置的Node Properties对话框,在该对话框的Radix下拉列表中有四种选择,这里可选择二进制Binary表达方式。

相关文档
最新文档