当前位置:文档之家› 基于Quartus六十进制计数器的设计说明

基于Quartus六十进制计数器的设计说明

EDA技术实践课程设计2014年 7月 25日EDA技术实践课程设计任务书课程 EDA技术实践课程设计题目六十进制计数器专业学号主要容:利用QuartusII设计一个六十进制计数器。

该电路是采用整体置数法接成的六十进制计数器。

首先需要两片74160接成一百进制的计数器,然后将电路的59状态译码产生LD′=0信号,同时加到两片74160上,在下一个计数脉冲(第60个计数脉冲)到达时,将0000同时置入两片74160中,从而得到六十进制计数器。

主要要求如下:(1)每隔1个周期脉冲,计数器增1;(2)当计数器递增到59时,进位端波形发生跳变,说明计数器产生进位信号,之后计数器会自动返回到00并重新计数;(3)本设计主要设备是两片74160同步十进制计数器,时钟信号通过建立波形文件得以提供。

主要参考资料:[1] 朱正伟.EDA技术及应用[M].第2版.:清华大学,2013.[2] 国洪.EDA技术与实验[M].:机械工业,2009.[3] 忠平,高金定,高见芳.基于QuartusII的FPGA/CPLD设计与实践[M].:电子工业,2010.[4] 颂华.数字电子技术基础[M].第2版.:电子科技大学,2009.[5] 阎石.数字电子技术基础[M].第5版.:高等教育,2006.[6] 康华光.电子技术基础:数字部分[M].:高等教育,2000.完成期限 2014.7.21——2014.7.25指导教师专业负责人2014年 7 月18日目录1 设计 (1)2 方案选择与电路原理图的设计 (1)2.1 单元电路一:十进制计数器电路(个位) (2)2.2 单元电路二:十进制计数器(十位) (3)2.3 单元电路三:置数与进位电路 (3)3 元件选取与电路图的绘制 (4)3.1 元件选取 (4)3.2 电路图的绘制 (4)4 编译设计文件 (5)5 仿真设计文件 (6)6 总结 (10)参考文献 (11)1 设计六十进制计数器的功能要求:(1)每隔1个周期脉冲,计数器增1;(2)当计数器递增到59时,进位端波形发生跳变,说明计数器产生进位信号,之后计数器会自动返回到00并重新计数;(3)本设计主要设备是两片74160同步十进制计数器,时钟信号通过建立波形文件得以提供。

图1.1同步十进制计数器打开QuartusII软件,建立一个项目文件,以画原理图为设计方法,再新建一个block文件:点击New,在Device Design Files标签下选择第二项,点击O K。

2 方案选择与电路原理图的设计使用具有一定频率的时钟信号作为计数器的时钟脉冲作为同步控制信号,整体电路通过两片74160与其他门电路辅助等单元电路构成以实现置数进位功能。

图2.1为六十进制计数器的总体电路原理框图。

十进制计数器(个位)十进制计数器(十位)进位置数时钟脉冲图2.1 电路原理框图2.1 单元电路一:十进制计数器电路(个位)本电路采用74160作为十进制计数器,它是一个具有异步清零、同步置数、可以保持状态不变的十进制上升沿计数器。

每输入10个计数脉冲,计数器便工作一个循环,并且在进位端RCO 产生一个进位输出信号。

其功能表如表2-1所示,连接方式如图2.2所示。

此片工作时进位端RCO 在没有进位时RCO =0,因此第二片ENP ·ENT =0,第二片不工作。

表2-1 同步十进制计数器功能表在新建好的block 文件的图形编辑窗口中双击鼠标,或点击图中“符号工具”按钮,或者选择菜单Edit 下的Insert Symbol 命令,即可对元件进行选择。

选择元件库中的others —maxplus2—74160。

点击工具栏中Orthogonal Node Tool 按钮便可以对端子间进行连线,其中值得注意的是,点击工具栏中Orthogonal Bus Tool 按钮可以通过总线进行连接,如图2.2中四个输出端Q A 、Q B 、Q C 、Q D 可以通过一根总线连接但可表示四位输出,而输出符号Output 的Pin name 应改为Q0[3..0]。

CLKRD ′ LD ′ ENP ENT 工作状态 ×0 × × × 置零 ↑1 0 × × 预置数 ×1 1 0 1 保持 ×1 1 × 0 保持 ↑ 1 1 1 1 计数接地时钟脉冲 高电平 接下片置数端进位端,控制下片ENP 、ENT 端输出端,利用总线接Input输出符号图2.2十进制计数器电路(个位)2.2 单元电路二:十进制计数器(十位)本电路同样采用74160作为十进制计数器,如图2.3所示。

当第一片进位端RCO 进位即RCO =1时,第二片ENP ·ENT =1,第二片开始计数工作,第一片每计10个数,第二片加1(十位),当加到59时,由辅助门电路接入置数端使计数器输出置0000,并重新开始循环。

由于第二片(十位)74160输出端线路并不繁杂,因此本单元电路的四位输出端可分别直接连接输出符号Output ,以便于观察波形。

图2.3十进制计数器电路(十位)2.3 单元电路三:置数与进位电路 通过创建波形文件,产生具有一定频率的时钟脉冲提供触发信号,通常称这个触发信号为时钟信号(CLOCK ),记做CLK 。

当系统中有多个器件需要同时工作时,就可以用同一个CLK 信号作为同步控制信号,比如本电路中用到的同步十进制计数器(74160)。

在时钟脉冲的触发作用下,当第二片(十位)74160加到59时,便由此单元门电路接入置数端使计数器输出置0000,并重新开始循环。

点击图中“符号工具”按钮,或者选择菜单Edit 下的Insert Symbol 命令,在元件库中选择primitives —logic —nand4和not 。

其中nand4表示具有四个输入端的与非门,辅助构成六十进制计数器;not 为非门,实现反相功能,并能产生接上片进位端 接高电平接上片置数端接地时钟脉冲输出端,接Input 输出符号接高电平或悬空进位输出(高电平)。

图2.4 置数与进位电路3 元件选取与电路图的绘制3.1 元件选取元件的选取包括同步十进制计数器、与非门、反相器等,具体元件名称、型号、数量及用途如表3-1所示。

表3-1 元件的选取 名称型号 数量 用途 同步十进制计数器74160 2片 联成六十进制计数器 四端子与非门NAND4 1个 辅助构成计数器 反相器 NOT 1个 实现反相(非)的功能3.2 电路图的绘制首先用两片74160接成一百进制的计数器,然后将电路的第59状态译码产生LD ′=0信号,同时加到两片74160上,在下一个计数脉冲(第60个计数脉冲)到达时,将0000同时置入两片74160中,从而得到六十进制计数器。

六十进制计数器的状态转换图如图3.1所示,完整原理图如图3.2所示。

00→01→02→03→04→05→06→07→08→09→10→11→12→13→14→15↓30←29←28←27←26←25←24←23←22←21←20←19←18←17←16↓31→32→33→34→35→36→37→38→39→40→41→42→43→44↓59←58←57←56←55←54←53←52←51←50←49←48←47←46←45计数器个位输出端计数器十位输出端 进位信号图3.1 状态转换图图3.2 六十进制计数器原理图4编译设计文件QuartusII编译器的主要任务是对设计项目进行检查并完成逻辑综合,同时将项目最终设计结果生成器件的下载文件。

编译开始前,可以先对项目的参数进行设置。

编译完成以后,编译报告窗口Compilation Report会列出项目文件编译的相关信息的清单,如编译的顶层文件名、目标芯片的信号、引脚数目等等。

全编译的过程包括分析与综合(Analysis&Synthesis)、适配(Fitter)、编程(Assembler)、时序分析(Classical Timing Analysis)这4个环节,而这4个环节各自对应相应的菜单命令,而且可以单独分步进行,也就是分步编译。

编译工作非常简单,单击快捷菜单中的Start Compilation按钮,或者单击菜单栏中Processing—Start Compilation,即可进行编译操作。

编译成功会弹出相应的对话框,容为Full Compilation was successful,如图4.1所示。

图4.1 编译成功5仿真设计文件1、建立波形文件建立波形文件用来为设计产生输入激励信号。

利用QuartusII波形编辑器可以创建矢量波形文件,后缀为.vwf。

步骤如下:(1)选择QuartusII主界面File菜单下的New命令,弹出新建对话框(如图5.1所示);图5.1 建立波形文件(2)在新建对话框中选择Other File标签页,从中选择Vector Waveform File,点击OK按钮,则打开一个空的波形编辑器窗口(如图5.2所示);图5.2 空白波形编辑器(3)将波形文件保存,并将原理图文件和波形文件一并加到项目之下(如图5.3所示),点击省略号按钮,选择波形文件和原理图文件,点击Add All即可。

图5.3 添加波形文件和原理图文件2、输入信号节点(1)执行Edit菜单中的Insert Node or Bus命令,或者在波形编辑器在编Name列的空白处单击鼠标右键弹出Insert Node or Bus对话框,如图5.4所示。

图5.4 添加节点或总线(1)(2)点击Insert Node or Bus对话框中的Node Finder...按钮,弹出Node Finder对话框,在窗口中添加全部信号节点,如图5.5所示。

图5.5 添加节点或总线(2)3、编辑输入信号右键点击CLK—Insert—Value—Clock即可编辑时钟输入信号,如图5.6所示。

图5.6 时钟信号的设置设置好时钟输入信号后,将nRD输入端设置为高电平,如图5.7所示。

这是由于本电路使用置数法实现功能进位,因此必须保证清零端始终接收无效信号。

图5.7 清零端的设置4、仿真波形文件QuartusII软件中默认的是时序仿真,如果进行功能仿真需要先对仿真进行设置。

六十进制计数器只需时序仿真即可辨别其设计的功能是否满足要求。

仿真过程的操作非常简单,选择QuartusII主窗口Processing菜单下的StartSimulation命令,或者直接单击快捷菜单中的Start Simulation按钮就可以开始进行仿真工作了,仿真成功就会出现如图5.8所示的对话框。

图5.8 仿真成功仿真的结果如图5.9所示。

相关主题