当前位置:文档之家› EDA 16位加法计数器的设计

EDA 16位加法计数器的设计

北京理工大学用程序输入方法设计一个16位二进制加法计数器学院:机械xxxx学院专业班级:10机械电子工程x班姓名:陈xx学号:10xxxxxx指导教师:xxx 老师目录摘要 (1)1 绪论 (2)2 计数器的工作原理 (3)3 设计原理 (4)4 电路系统的功能仿真 (5)6 个人小结 (20)参考文献 (21)摘要计数器是数字系统中使用较多的一种时序逻辑器件。

计数器的基本功能是统计时钟脉冲的个数,即对脉冲实现计数操作。

计数器也可以作为分频、定时、脉冲节拍产生器和脉冲序列产生器使用。

计数器的种类很多,按构成计数器中的各触发器是否使用一个时钟脉冲源来分,可分为同步计数器和异步计数器;按进位体制的不同,可分为二进制计数器、十进制计数器和任意进制计数器;按计数过程中数字增减趋势的不同,可分为加法计数器、减法计数器和可逆计数器;还有可预制数和可编计数器等等。

本次课程设计将利用众多集成电路软件软件中的Quartus II软件,使用VHDL语言编程完成论文《用程序输入方法设计一个16位二进制加法计数器》,调试结果表明,所设计的计数器正确实现了计数功能。

关键词:二进制;加法计数器;VHDL语言1 绪论现代电子设计技术的核心已日趋转向基于计算机的电子设计自动化,即EDA(Electronic Design Automation)技术。

EDA技术就是依赖功能强大的计算机,在集成电路软件平台上,对以硬件描述语言HDL(Hardware Description Language)为系统逻辑描述手段完成的设计文件,自动完成逻辑编译、化简、分割、综合、布局布线以及逻辑优化和仿真测试,直至实现既定的电子线路系统功能。

现在对EDA的概念或范畴用得很宽。

包括在机械、电子、通信、航空航天、化工、矿产、生物、医学、军事等各个领域,都有EDA的应用。

目前EDA技术已在各大公司、企事业单位和科研教学部门广泛使用。

例如在飞机制造过程中,从设计、性能测试及特性分析直到飞行模拟,都可能涉及到EDA技术。

一般所指的EDA技术,主要针对电子电路设计、PCB设计和IC设计。

EDA工具软件可大致可分为芯片设计辅助软件、可编程芯片辅助设计软件、系统设计辅助软件等三类。

常用的EDA工具软件平台有:Matlab、Protel、Proteus、OrCAD以及我们学习的本次课程结课论文所用到的Quartus II等。

而且EDA工具软件平台一般都有第三方软件接口,以便于与其他软件联合使用。

本次课程结课论文在设计16位二进制加法计数器时所用到的EDA软件工具平台是Quartus II。

Quartus II 是Altera公司的综合性PLD(可编程逻辑器件)开发软件,支持原理图、VHDL、VerilogHDL以及AHDL(Altera Hardware Description Language)等多种设计输入形式,内嵌自有的综合器以及仿真器,可以完成从设计输入到硬件配置的完整PLD设计流程。

Quartus II 通过和DSPBuilder工具与Matlab/Simulink相结合,可以方便地实现各种DSP应用系统;支持Altera的片上可编程系统(SOPC)开发,集系统级设计、嵌入式软件开发、可编程逻辑设计于一体,是一种综合性的开发平台。

本文将介绍在Quartus II 平台上利用VHDL语言来实现16位二进制加法计数器的程序设计。

2 计数器的工作原理计数器是数字系统中使用较多的一种时序逻辑器件。

计数器的基本功能是统计时钟脉冲的个数,即对脉冲实现计数操作。

其工作原理可概述为:当输入时钟脉冲的一个上升沿(也可以是下降沿)来临时,二进制数据的低一位加1(或减1),并向高位进1(或借1)。

在没有外部约束条件时,计数器可进行与其二进制位数对应的数值的相应进制的自循环计数,如位数为3的计数器可进行8进可根据需要来设置计数器的位数,并通过外部约束条件来人为设定计数器的计数模数,来得到计数进制符合需要的N进制计数器。

所谓N进制计数器,是指一个计数器的计数过程,在经历时钟脉冲信号的个为N之后,二进制数据又回到初始状态的计数器。

表2.1计数器的状态表3 设计原理本论文所设计的16位二进制加法计数器,其中16位计数器输出Q[15..0]=0000000000000000,时钟CLK的上升沿到来时,计数器处于预置工作状态,输出Q[15..0]= D[15..0],D[15..0]是16位并行数据输入端,COUT 是进位输入端,当UPDOWN=0(进行加法操作)且输出Q[15..0]=1111111111111111时,COUT=1表示进位输出。

4 电路系统的功能仿真1.编辑文件(1)启动Quartus双击桌面上的QuartusⅡ图标或单击开始按扭,启动QuartusⅡ。

其初始界面如图1所示。

图1 初始界面(2)编辑文件单击标题栏中的File→New对话框,如图2所示。

图2 输入选择对话框单击New对话框的Device Design Files选项卡,选择编译文件的语言类型。

这里选择VHDL Files,选好后单击【OK】按钮,打开VHDL文本编辑器窗口,并在其中输入图3所示的程序,这是一个与门的VHDL程序。

图3 文本编辑器输入完成之后,单击File→Save As选项,将编辑的文本文件存在已建立的文件夹c:\Users 下,存盘文件名应该与VHDL程序的实体名一致,即Vhdl1.vhd。

当出现问句Do you want to create…时,可选“否”。

2.创建工程(1)打开建立新工程向导单击File→New Project Wizard菜单,出现新建工程向导对话框,如图4所示。

图4 新建工程向导在图4中,单击【Next】按钮,出现如图5所示的工程基本设置对话框。

图5 工程基本设置和情况在最上面的输入框中输入工作库文件夹的地址,本例的地址是C:\User/GongYu/Desktop/EDA/cnt16,或者单击该对话框最上一栏右侧的【…】按钮,出现选择文件夹的目录。

(2) 将设计文件加入工程中单击图7中的【Next】按钮,在弹出的对话框中,将与本工程有关的文件加入,有两种方法:一种是单击右边的【Add All】按钮,将设定工程目录中的所有VHDL文件加入到工程文件栏;另一种是单击【Add …】按钮,从工程目录中选出相关的VHDL文件。

图5中间的输入框就是该工程的名称,一般可以用顶层文件的名称作为工程名称,本例的顶层文件名是cnt16。

最下面的输入框要求输入顶层设计文件实体的名称,本例顶层文件的实体名称是cnt16。

图5就是完成后的效果。

图8 加入设计文件(3) 选择仿真器和综合器类型单击图8中的【Next】按钮,这时弹出选择仿真器和综合器类型的窗口。

如果选择默认的NONE,表示使用QuartusⅡ中自带的仿真器和综合器。

在本例中都选默认的NONE选项。

如图9所示。

图9 EDA工具设置(4) 选择目标芯片单击图9中的【Next】按钮,根据系统设计的实际需要选择目标芯片。

首先在Family栏选择芯片系列,本例选择ACEX20KE系列。

在此栏下方,询问选择目标器件的方式,选No,表示允许编程器自动选择该系列中的一个器件;单击Yes选项,表示手动选择。

如图10所示。

图10 器件模式本例采用手动选择,单击图10中的【Next】按钮,选择此系列的具体芯片:EP20K30ETC144-1,如图11所示。

图11 目标器件选择单击【Next】按钮后,弹出工程设置统计窗口,如图12所示。

图12 摘要(5) 结束设置最后单击图12中的【Finish】按钮,结束设置。

在QuartusⅡ主窗口的左侧,如图13所示。

图13 工程管理窗口该图是工程ex1_v 的工程管理窗口(或称Compilation Hierarchy窗口),主要显示本工程项目的层次结构和各层次的实体名。

3.目标芯片的配置(1) 选择目标芯片单击标题栏中的Assignments→Settings菜单,在弹出的对话框中选Category下的Device选项,然后在右侧选择目标芯片EP20K30ETC144-1(此芯片已在建立工程时选定了)。

也可在Available devices栏分别单击Package(封装形式)、Pin count(管脚数量)和Speed(速度)来选定芯片。

如图14所示。

图14 选择器件对话框(2) 选择目标器件编程配置方式单击图14中的【Device & Pin Options…】(本例中字母D被挡住了)按钮进入器件与管脚操作对话框,首先选择Configuration项,在此框的下方有相应的说明,在此可选Configuration方式为Passive Serial,这种方式可以直接由PC机配置,也可由专用配置器件进行配置。

使用的配置器件选Auto(系统自动配置),如图15所示。

图15 配置选项卡(3) 选择输出配置单击图15中的Programming Files选项卡,可以选Hexadecimal,即产生下载文件的同时,产生十六进制配置文件,Start(起始地址)设为0,Count(计数)设为Up(递增方式)。

如图16所示。

此文件可用于单片机与EPROM构成的FPGA配置电路系统。

图16 程序文件选项卡(4) 选择目标器件闲置管脚的状态单击图16中的Unused Pins选项卡,可根据实际需要选择目标器件空闲管脚的状态,有三种状态可供选择:作为输入并呈高阻状态、作为输出并呈低电平状态、作为输出并呈不确定状态。

也可以对空闲管脚不作任何选择,而由编程器自动配置。

如图17所示。

图17 空闲管脚设置选项卡(1)编译单击标题栏中的Processing→Start Compilation选项,启动全程编译。

编译包括对设计输入的多项处理操作,其中包括排错、数据网表文件提取、逻辑综合、适配、装配文件(仿真文件与编程配置文件)生成,以及基于目标器件的工程时序分析等。

如果工程文件中有错误,在下方的信息栏中会显示出来。

可双击此条提示信息,在闪动的光标处(或附近)仔细查找,改正后存盘,再次进行编译,直到没有错误为止。

编译成功的标志是所有进程都完成,如图18所示。

图18 编译进程信息(2)阅读编译报告编译成功后可以看到编译报告,如图19所示。

左边栏目是编译处理信息目录,右边是编译报告。

这些信息也可以在Processing菜单下的Compilation Report处见到。

图19 编译报告仿真就是对设计项目进行一项全面彻底的测试,以确保设计项目的功能和时序特性符合设计要求,保证最后的硬件器件的功能与原设计相吻合。

仿真可分为功能仿真和时序仿真。

功能仿真只测试设计项目的逻辑行为,而时序仿真不但测试逻辑行为,还测试器件在最差条件下的工作情况。

相关主题