1、北京理工大学用程序输入方法设计一个 16 位二进制加法计数器学 院: 机械 xxxx 学院 专业班级:10 机械电子工程 x 班姓 名: 陈 xx 学 号: 10xxxxxx 指导教师: xxx 老师 目录摘要 .I1 绪论 .12 计数器的工作原理 .23 设计原理 .34 电路系统的功能仿真 .126 个人小结 .16参考文献 .17摘要计数器是数字系统中使用较多的一种时序逻辑器件。计数器的基本功能是统计时钟脉冲的个数,即对脉冲实现计数操作。计数器也可以作为分频、定时、脉冲节拍产生器和脉冲序列产生器使用。计数器的种类很多,按构成计数器中的各触发器是否使用一个时钟脉冲源来分,可分为同步计数器
2、和异步计数器;按进位体制的不同,可分为二进制计数器、十进制计数器和任意进制计数器;按计数过程中数字增减趋势的不同,可分为加法计数器、减法计数器和可逆计数器;还有可预制数和可编计数器等等。本次课程设计将利用众多集成电路软件软件中的 Quartus II 软件,使用 VHDL 语言编程完成论文用程序输入方法设计一个 16 位二进制加法计数器 ,调试结果表明,所设计的计数器正确实现了计数功能。关键词:二进制;加法计数器;VHDL 语言1 绪论现代电子设计技术的核心已日趋转向基于计算机的电子设计自动化,即EDA( Electronic Design Automation)技术。EDA 技术就是依赖功能
3、强大的计算机,在集成电路软件平台上,对以硬件描述语言 HDL(Hardware Description Language)为系统逻辑描述手段完成的设计文件,自动完成逻辑编译、化简、分割、综合、布局布线以及逻辑优化和仿真测试,直至实现既定的电子线路系统功能。现在对 EDA 的概念或范畴用得很宽。包括在机械、电子、通信、航空航天、化工、矿产、生物、医学、军事等各个领域,都有 EDA 的应用。目前EDA 技术已在各大公司、企事业单位和科研教学部门广泛使用。例如在飞机制造过程中,从设计、性能测试及特性分析直到飞行模拟,都可能涉及到 EDA 技术。一般所指的 EDA 技术,主要针对电子电路设计、PCB
4、设计和 IC 设计。 EDA 工具软件可大致可分为芯片设计辅助软件、可编程芯片辅助设计软件、系统设计辅助软件等三类。常用的 EDA 工具软件平台有:Matlab、Protel、Proteus、 OrCAD 以及我们学习的本次课程结课论文所用到的Quartus II 等。而且 EDA 工具软件平台一般都有第三方软件接口,以便于与其他软件联合使用。本次课程结课论文在设计 16 位二进制加法计数器时所用到的 EDA 软件工具平台是 Quartus II。Quartus II 是 Altera 公司的综合性 PLD(可编程逻辑器件)开发软件,支持原理图、VHDL、VerilogHDL 以及 AHDL(
5、Altera Hardware Description Language)等多种设计输入形式,内嵌自有的综合器以及仿真器,可以完成从设计输入到硬件配置的完整 PLD 设计流程。 Quartus II 通过和 DSP Builder 工具与 Matlab/Simulink 相结合,可以方便地实现各种 DSP 应用系统;支持 Altera 的片上可编程系统(SOPC)开发,集系统级设计、嵌入式软件开发、可编程逻辑设计于一体,是一种综合性的开发平台。本文将介绍在 Quartus II 平台上利用 VHDL 语言来实现 16 位二进制加法计数器的程序设计。2 计数器的工作原理计数器是数字系统中使用较多
6、的一种时序逻辑器件。计数器的基本功能是统计时钟脉冲的个数,即对脉冲实现计数操作。其工作原理可概述为:当输入时钟脉冲的一个上升沿(也可以是下降沿)来临时,二进制数据的低一位加1(或减 1) ,并向高位进 1(或借 1) 。在没有外部约束条件时,计数器可进行与其二进制位数对应的数值的相应进制的自循环计数,如位数为 3 的计数器可进行 8 进制的自循环加法或减法计数。可根据需要来设置计数器的位数,并通过外部约束条件来人为设定计数器的计数模数,来得到计数进制符合需要的 N 进制计数器。所谓 N 进制计数器,是指一个计数器的计数过程,在经历时钟脉冲信号的个为 N 之后,二进制数据又回到初始状态的计数器。
7、表 2.1 计数器的状态表 图 2.1 计数器的状态图 时钟 Q0 Q1 Qn-1 Qn0 0 0 0.00 0 01 0 0 0 12 0 0 1 03 0 0 1 1. . 2n-1 1 1 . 1 02n 1 1 1.11 1 12n+1 0 0 0.00 0 03 设计原理本论文所设计的 16 位二进制加法计数器,其中 16 位计数器输出 Q15.0=0000000000000000,时钟 CLK 的上升沿到来时,计数器处于预置工作状态,输出 Q15.0= D15.0,D15.0是 16 位并行数据输入端,COUT 是进位输入端,当 UPDOWN=0(进行加法操作 )且输出 Q15.0
8、=1111111111111111 时,COUT=1 表示进位输出。4 电路系统的功能仿真1. 编辑文件(1)启动 Quartus双击桌面上的 Quartus图标或单击开始按扭,启动 Quartus。其初始界面如图 1 所示。图 1 初始界面(2)编辑文件单击标题栏中的 FileNew 对话框,如图 2 所示。图 2 输入选择对话框单击 New 对话框的 Device Design Files 选项卡,选择编译文件的语言类型。这里选择VHDL Files,选好后单击【OK】按钮,打开 VHDL 文本编辑器窗口,并在其中输入图 3所示的程序,这是一个与门的 VHDL 程序。图 3 文本编辑器输入
9、完成之后,单击 FileSave As 选项,将编辑的文本文件存在已建立的文件夹 c:Users下,存盘文件名应该与 VHDL 程序的实体名一致,即 Vhdl1.vhd。当出现问句 Do you want to create时,可选“否” 。2. 创建工程(1)打开建立新工程向导单击 FileNew Project Wizard 菜单,出现新建工程向导对话框,如图 4 所示。图 4 新建工程向导在图 4 中,单击【Next】按钮,出现如图 5 所示的工程基本设置对话框。图 5 工程基本设置和情况在最上面的输入框中输入工作库文件夹的地址,本例的地址是C:User/GongYu/Desktop/E
10、DA/cnt16,或者单击该对话框最上一栏右侧的 【】按钮,出现选择文件夹的目录。(2) 将设计文件加入工程中单击图 7 中的【Next】按钮,在弹出的对话框中,将与本工程有关的文件加入,有两种方法:一种是单击右边的【Add All】按钮,将设定工程目录中的所有 VHDL 文件加入到工程文件栏;另一种是单击【Add 】按钮,从工程目录中选出相关的 VHDL 文件。图 5 中间的输入框就是该工程的名称,一般可以用顶层文件的名称作为工程名称,本例的顶层文件名是 cnt16。最下面的输入框要求输入顶层设计文件实体的名称,本例顶层文件的实体名称是 cnt16。图 5 就是完成后的效果。图 8 加入设计
11、文件(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 所示。