于Quartus II的微程序控制简易计算机的设计
- 格式:doc
- 大小:409.50 KB
- 文档页数:9
实验一用原理图输入法设计四位全加器一实验目的1熟悉利用Quartus II 的原理图输入方法设计简单组合电路.2掌握层次化设计的方法,并通过一个8位全加器的设计把握利用EDA软件进行原理图输入方式的电子线路设计的详细流程。
二实验仪器电子计算机Quartus II三实验原理加法器是数字系统中的基本逻辑器件。
例如:为了节省资源,减法器和硬件乘法器都可由加法器来构成。
但宽位加法器的设计是很耗费资源的,因此在实际的设计和相关系统的开发中需要注意资源的利用率和进位速度等两方面的问题。
多位加法器的构成有两种方式:并行进位和串行进位方式。
并行进位加法器设有并行进位产生逻辑,运算速度快;串行进位方式是将全加器级联构成多位加法器。
通常,并行加法器比串行级联加法器占用更多的资源,并且随着位数的增加,相同位数的并行加法器比串行加法器的资源占用差距也会越来越大。
四位全加器可对两个多位二进制数进行加法运算,同时产生进位。
当两个二进制数相加时,较高位相加时必须加入较低位的进位项(Ci),以得到输出为和(S)和进位(C0)。
四实验步骤(一)创建工程1、选择菜单file—New Project Wizard,选择保存位置,并命名工程名2、将设计文件加入工程。
3、选择仿真器和综合类型,目标芯片EP2C5T144C8。
4、设置相关参数(二)原理图设计1、在QuartusII操作环境中,单击工具栏“File”选择“new”中的“Device Design Files”建立新的原理图编辑窗口。
2、在编辑窗口右击选择Insert——Symbol,将相关元件调入原理图编辑窗口中,并连接好电路,在元件上双击后可以更改各输入引脚名。
3、保存到工程建立的目录文件夹4、将设计项目设置成可调用的文件。
在打开原理图文件的情况下,选择File—Create/Update —Create Symbol Files for Cureent File,即可将当前文件变成一个元件符号存盘,以待在高层次设计中调用。
基于quartus II的计算机运算器设计【摘要】随着EDA技术、CPLD/FPGA的迅猛发展以及相关软件的日益成熟,利用计算机来设计计算机成为一种行之有效且势在必行的新方式。
本文基于Q uartus II 6.0的图形设计方式,辅助Verilog HDL语言,以封装的基本逻辑单元为基础设计了4位定点除法器。
仿真结果表明,本文设计的除法器能够完成预期的除法运算功能。
【关键词】Q uartus;II 6.0;除法器设计;CPLD/FPGA1 手工除法运算方法分析计算机内部数据一般用补码表示[1],为了找出适合于计算机运算器执行的除法运算方法,下面以4位二进制数为例分析手工除法算法[2]。
正整数做除法运算时,商的数码由高到低生成,确定商之前需要比较被除数与除数位数相同的部分是否够减,不够减商位0,够减商为1[3]。
由于这种试商操作是从被除数的高位开始的,为了保证位数的一致性,将被除数的最高位填写3个”0”,然后进行4位数的比较。
每次得到的部分差要左移一位,最低位要由被除数没参加比较的下一位填充。
当被除数的最低位数码经过试商,前次部分差和此次一位商与除数的积相减后,得到的部分差就是余数。
分析该手工除法运算方法可知:当部分积为0时,要直接将前次部分差左移一位,使之低3位的成为下一次的被减数的高3位,否则,将本次减法运算的结果左移一位,使之成为被减数的高3位。
整个除法的运算过程认定除数是不动的,那么被除数和商是每步相减之后,到要左移一位,添加下面一位,然后与一位乘积做减法。
2 正整数除法器设计按照上述分析在Quartus II[4]中设计正整数除法电路如图1所示。
主要部件为加减运算单元,保存为cfq1.bdf。
用一条输入线和它的非门的或运算给减法控制线sub赋值1。
正整数除法的除数和被除数的最高位均为0,因此,将补充的被除数的高3位直接同被除数的最高位连在一起,就能够得到使高位补充数码都为0的目的。
每次试商的时候要判断部分差是否够减,判断的过程就用减法器来进行。
QuartusⅡ软件工具设计步骤一、QuartusⅡ原理图输入法应用数字逻辑电路的基本知识,使用QuartusⅡ原理图输入法可非常方便地进行数字系统的设计。
应用QuartusⅡ原理图输入法,还可以把原有的使用中示规模的通用数字集成电路设计的数字系统移植到FPGA或CPLD中。
(一)建立工程文件夹1.新建一个文件夹作为工程项目目录首先在计算机中建立一个文件夹作为工程项目目录,此工程目录不能是根目录,比如D:,只能是根b录下的b录,比如D:\EDA _book \code\Chapter3\BiaoJueQi。
2.建立工程项目运行Quartus Ⅱ软件,执行File=>New Project Wizard 命令,建立工程。
在界面中单击Next按钮。
在所弹出的New Project Wizard对话框中,填写Directory,Name, Top-Level Entity等项目。
其中第一、第二、第三个文本框分别是工程项目目录、项目名称和项目顶层设计实体的名称。
单击Next按钮,出现添加工程文件的对话框。
若原来己有文件,可选择相应文件,这单直接单击Next进行下一步,选择FPGA器件的型号。
在Family下拉框中,根据需要选择一种型号的FPGA,比如Cyclone系列FPGA。
然后在“Available devices:”中根据需要的FPGA 型号选择FPGA型号,比如“EP1C3T144C8”,注意在Filters一栏中选中“Show Advanced Devices”以显示所有的器件型号。
再单击Next按钮,出现对话框。
对于弹出的其他EDA工具的对话框,由于我们使用Quartus Ⅱ的集成环境进行开发,因此不要作任何改动。
单击Next进入工程的信息总概对话框。
单击Finish按钮就建立了一个空的工程项目。
二、编辑设计图形文件1.建立原理图文件执行File => New 命令,弹出新建文件对话框。
实验一、Quartus II的使用一、实验目的:(1)熟悉Quartus II开发环境的使用(2)掌握利用Quartus II进行简单数字电路设计的基本流程及方法(3)掌握Quartus II开发环境中建立电路图的方法(4)了解Quartus II下简单设置输入激励的方法二、实验步骤下面以1位全加器为例介绍如何使用Altera Quartus II设计软件来对可编程逻辑器件进行编程。
(1)双击桌面上Quartus II 图标,运行Quartus II 软件,如图所示:图1 Quartus II 软件界面(2)建立工程。
选择菜单File→New Project Wizard,如图2所示图2 选择建立新工程向导菜单项单击菜单项New Project Wizard 后,出现向导提示框,单击按钮Next,出现如图3所示New Project Wizard 对话框界面,在该界面中输入相应工程名称和存放路径,然后单击按钮Next。
图3 New Project Wizard对话框界面出现如图4所示的Add Files 对话框界面,在File name 栏中输入文件名称,如“Adder”。
图4 Add Files对话框界面出现如图 5 所示的器件设置对话框界面,实验系统使用的是MAXII 系列的EPM1270T144C5 芯片,找到该器件后选中它,然后一直单击按钮Next,完成新工程的建立图5 器件设置对话框界面(3)新建设计文件建立新工程后,选择菜单File→New,弹出如图6 所示的新建设计文件选择窗口。
选择框中的Device Design Files 页下的项目Block Diagram/Schematic File,使用图形设计方式,单击按钮OK,则打开了图形编辑器窗口。
图6 新建设计文件选择框选择菜单File→Save As,在文件保存对话框中输入文件名,如Adder,然后单击按钮“保存”,则创建了图形设计文件Adder(4)设计逻辑电路。
数字电子技术基础实验报告题目:实验四基于Quartus II的硬件描述语言电路设计小组成员:小组成员:一、实验四基于Quartus II的硬件描述语言电路设计一、实验目的1)学习并掌握硬件描述语言VHDL;熟悉门电路的逻辑功能,并用硬件描述语言实现门电路的设计。
2)熟悉中规模器件译码器的逻辑功能,用硬件描述语言实现其设计。
3)熟悉时序电路计数器的逻辑功能,用硬件描述语言实现其设计。
4)熟悉分频电路的逻辑功能,并用硬件描述语言实现其设计。
二、实验要求要求1:参考“参考内容1”中给出的与门源程序,编写一个异或门逻辑电路。
1)用QuartusII波形仿真验证;2)下载到DE0开发板验证。
要求2:参考“参考内容2”中给出的将8421BCD码转换成0-9的七段码译码器源程序,编写一个将二进制码转换成0-E的七段码译码器。
1)用QuartusII波形仿真验证;2)下载到DE0开发板,利用开发板上的数码管验证。
要求3:参考“参考内容3”中给出的四位二进制计数器的源程序,编写一个计数器实现0-E计数。
用QuartusII波形仿真验证;要求4:参考“参考内容4”中给出的50M分频器的源程序,编写一个能实现占空比50%的5M和50M分频器即两个输出,输出信号频率分别为10Hz和1Hz。
下载到DE0开发板验证。
(提示:利用DE0板上已有的50M晶振作为输入信号,通过开发板上两个的LED灯观察输出信号)。
电路框图如下:要求5:利用已经实现的VHDL模块文件,顶层文件采用原理图设计方法,实现0-E计数自动循环显示,频率1Hz和10Hz可以切换。
(提示:如何将VHDL模块文件在顶层原理图文件中引用,参考参考内容5)三、实验设备(1)电脑一台;(2)数字电路实验箱;(3)数据线一根。
四、实验原理1.VHDL具有功能强大的语言结构,可以用简洁明确的源代码来描述复杂的逻辑控制。
它具有多层次的设计描述功能,层层细化,最后可直接生成电路级描述。
以十进制计数器设计为例介绍Quartus II的基本设计流程一、编辑和输入设计文件1、新建一个文件夹如F:\cnt10b ,本工程所有文件将存放在此目录中。
1)输入VHDL源程序打开QuartusII,选择菜单File->New。
选择Verilog HDL File,如图4-1所示。
输入源程序,如图4-2所示。
2)文件存盘。
选择File->Save As命令,找到已设立的文件夹F:\cnt10b,存盘文件名应与实体名一致,存盘为CNT10.v。
当出现语句“do you want to create…..”的对话框,选择“是”自动创建工程。
这里先选择“否”,即暂时不创建工程流程。
下一步手动创建工程。
2、创建工程1)选择菜单File->New project Wizard命令,即弹出工程设置对话框。
出现对话框如下单击此对话框右侧的“…”进行设置,第一行的D:\cnt10b表示工程所在的工作库文件夹,第二行的CNT10表示此项工程的工程名,第三行是当前工程顶层文件的实体名。
2)将设计文件CNT10.v添加入工程中。
点击上图的“…”按钮,在弹出的对话框中选择CNT10.v文件。
单击“Add”按钮,结果如图4-4所示。
3)选择目标芯片器件选择Cyclone系列中的EP1C6Q240C8。
也可以从主菜单Assignments的下拉菜单中点击 Device目标芯片设置窗口。
4)工具设置,此处不进行设置,点击Next。
图75)结束设置列出了此工程相关设置情况,点击Finish按钮,出现project nevigator 窗口,显示本工程项目的层次结构和各层次的实体名。
6)关闭与打开工程选择File->close project。
选择File->Open project。
二、全程综合与编译选择Processing->start compilation,等待一段时间,跳出对话框提示编译成功或有错误,并在信息栏显示错误信息。
基于Quartus II 7.2 的数字电路设计操作过程图解一.Quartus II 7.2 启动方法一、直接双击桌面上的图标,可以打开Quartus II 7.2 软件;方法二、执行:【开始】→【程序】→【Altera】→【Quartus II 7.2】→【Quartus II 7.2 TalkBack Install】菜单命令,可以打开软件。
启动软件后,若你的电脑没有连接到Internet互联网,会出现如下图所示的提示,提示你没有连接到Altera的官方网站,将无法获得更新的资源。
点击〖确定〗继续,因为这不影响软件的正常使用。
若你的电脑已经正常连接到Internet互联网,则在打开软件时就不会出现以上的提示,并且可以通过软件界面右下方的两个图标:,直接连接到Altera公司的官方网站,以便获取更多的信息和资源。
二.Quartus II 7.2软件界面Quartus II 7.2软件的默认启动界面如下图所示,由标题栏、菜单栏、常用工具栏、资源管理窗口、程序编译或仿真运行状态的显示窗口、程序编译或仿真的结果显示窗口和工程编辑工作区组成。
三.Quartus II 7.2软件使用1. 新建项目工程使用QuartusII7.2设计一个数字逻辑电路,并用时序波形图对电路的功能进行仿真,同时还可以将设计正确的电路下载到可编程的逻辑器件(CPLD、FPGA)中。
因软件在完成整个设计、编译、仿真和下载等这些工作过程中,会有很多相关的文件产生,为了便于管理这些设计文件,我们在设计电路之前,先要建立一个项目工程(New Project),并设置好这个工程能正常工作的相关条件和环境。
建立工程的方法和步骤如下:(1)先建一个文件夹。
就在电脑本地硬盘找个地方注意:文件夹的命名及其保存的路径中不能有中文字符。
(2)再开始建立新项目工程,方法如右图点击:【File】菜单,选择下拉列表中的【New Project Wizard...】命令,打开建立新项目工程的向导对话框。
基于Quartus II的微程序控制简易计算机的设计顾晖,王礼春,成耀(南通大学计算机科学与技术学院,江苏南通226019)【摘要】本文借助于Quartus II软件在计算机上仿真设计了一台微程序控制的简易计算机,通过介绍电路仿真的主要流程,我们可以加深对计算机系统各模块的工作原理及相互联系的认识。
【关键词】 Q uartus II EDA 微程序控制计算机0 引言Quartus II是由美国Altera公司开发的,是一款功能比较强的EDA工具软件,它的优势主要体现在其功能齐全,简单易用[1]。
我们借助Quartus II6.0现有的器件,综合设计了一个简易计算机系统,并使用Quartus II6.0完成仿真[2],通过仿真波形展示该系统指令的执行流程,以及微指令的控制方法。
1 简易计算机系统的体系结构及功能模块设计一台微程序控制的简易计算机系统包含以下几个模块[3]:图(1)微程序控制的简易计算机系统结构示意图a) 运算模块,由ALU (两片74181),数据寄存器DR1,DR2(两片74273)以及数据缓冲器ALU_BUF (一片74244)构成,完成DR1与DR2的各种运算;b) 存储模块,由RAM(一片lpm_ram_dp0),RAM_BUF(一片74273),AR(一片74273)构成,由AR提供地址,完成RAM 的存取数据操作;c) 程序计数器模块,由PC(两片74161),PC_BUF(一片74244)构成,完成保存指令地址,以及提供RAM存取操作所需地址(包含存取数据与指令);d) 微程序控制模块,由IR(一片74273),微存储器(一片lpm_rom0),指令译码器(三片74273),以及一片74138(完成组合译码功能)构成,完成系统的控制功能;e) 输入模块,由IN_BUF(一片74244)构成,完成输入端IN0~IN7的数据输入功能;f) 时序电路,由集成计数器(一片74161)及三八译码器(一片74138)构成,可产生时序信号。
微程序控制的简易计算机系统结构示意图请参考图(1)。
1.1 时序电路[3] [4]时序电路见图(1.1)。
各个端口功能如下:a) R_CLK,时序电路的原始时钟,用来产生三个连续的时钟脉冲IR_CP,ROM_CP,TR_CP;b) START,启动键,低电平时有效;c) IR_CP,一个微指令周期的第一个上升沿,为指令寄存器IR的时钟信号;d) ROM_CP,一个微指令周期的第二个上升沿,为微存储器ROM及地址寄存器AR共用的时钟信号;e) TR_CP,一个微指令周期的第三个上升沿,为指令译码器,数据寄存器DR1、DR2,寄存器R0及RAM存储器共用的时钟信号。
说明:该时序电路利用集成计数器74161的计数循环特性,通过选择三八译码器74138来产生三个连续的脉冲信号,以形成一个微指令周期。
因本系统只是设计简易计算机系统,所以未设计RESET键。
1.2 微程序控制器模块[3] [4]控制器模块译码后输出的控制信号见图(1.2)。
各控制端功能如下:a) 0~5号控制端,输出下一条微指令在微存储器中的地址;b) 6号控制端LDR0,R0寄存器的时钟使能信号,高电平时有效;c) 7号控制端,指示是否有下一条微指令,若有则执行下一条微指令,若无,则执行下一条指令;d) 8~10号控制端,采取组合译码方式,分别用来选择控制端PC_BUF , ALU_BUF,IN_BUF,RM_BUF,以及R0寄存器的输出使能端,均为低电平时有效,当组合译码输出为000时表示不选择任何控制端;e) 11号控制端LDRM,RAM存取操作时钟使能信号;f) 12号控制端LDAR,AR送地址操作的时钟使能信号;g) 13号控制端LDDR2,数据寄存器DR2的时钟使能信号,上升沿到来时触发;h) 14号控制端LDDR1,数据寄存器DR1的时钟使能信号,上升沿到来时触发;i) 15号控制端LDPC,程序计数器PC的时钟使能信号,上升沿到来时触发;j) 16号控制端LOAD,程序计数器PC的同步并行置数端,低电平有效,若要完成同步并行置数,必须要维持此信号到程序计数器PC的时钟信号上升沿到来之后;k) 17号控制端W,RAM的读写控制端,高电平时为写,低电平时为读;l) 18号控制端CN0,运算器的低位进位端。
低电平为有进位,高电平时为无进位(注:只有在算术运算时是有效的);m) 19号控制端M,高电平时控制运算器执行算术运算,低电平时控制运算器执行逻辑运算;n) 20~23号控制端S0~S3,组合控制运算器执行不同的运算,如:1001时可以执行加(在19M号控制端为低电平,18号控制端CN0为高电平时有效)。
说明:微程序的输出控制端口(除六条微地址接口外)均是与其它模块相连接的控制端口,因此对其他模块的控制端口不再作进一步的阐述。
1.3 运算器模块[4] [5]运算器模块的控制端口有:M,CN0,S0~S3,N_AU,N_IN,详细说明请见控制器模块,模块结构请见图(1.3)。
1.4 存储器模块存储器模块的结构请见图(1.4),其各个控制端口已在控制器模块中作了详细说明。
1.5 数据显示灯[2] [4]为了调试时的方便,在设计过程中添加了一些数据显示灯,如下所示:a) DR1_OUT0~DR1_OUT7,数据寄存器DR1的显示灯;b) DR2_OUT0~DR2_OUT7, 数据寄存器DR2的显示灯;c) IR0~IR7,指令寄存器IR的显示灯;d) BUS0~BUS7,总线的数据显示灯;e) TR_OUT0~TR_OUT23,指示当前译码后的微控制信号的显示灯;f) CN8_ALU,运算器的最高位进位端。
2 简易计算机系统的仿真实现[4] [6]2.1 工程的建立a) 在Quartus Ⅱ环境下,打开菜单File,选择子菜单New Project Wizard后,按照向导窗口的提示,在窗口中正确输入有关的路径名和项目名称后,按下“Finish”按钮,即可完成项目的新建工作;b) 创建一个.dbf文件:选择File—New,打开“新建”窗口:在“Device Design Files”页,选中“Block Diagram/Schematic File”项后,按下“OK”按钮即可打开原理图编辑器,绘制系统的总体结构图,参图1.1~1.5;c) 由于该系统用到存储器,因而还需分别创建一个24位的和一个8位的.hex(或.mif)文件。
2.2 编写指令与微码系统运行必然需要指令,由于该系统是由微程序控制的,所以还需要编写微码。
a) 对8位的.hex(或.mif)RAM存储器编写程序即指令,各条指令在微指令存储器中如图(2),这里编写了最常用的五条指令;b) 对24位的.hex(或.mif)ROM存储器编写微码,控制各个模块执行不同的操作,五条指令的微码如图(3),其中前面两条为完成取指令的通用微码,即每条指令都要调用的,最后一条指令(地址为:FFH)是为初始启动时引导系统去取指令并执行后续指令服务的) 。
2.3 指令的格式[3]该系统设计使用了五条指令,分别为输入指令IN,加法指令ADD, 写指令STA, 读指令OUT,跳转指令JMP,字长均为8位,其格式及功能如下:a) 输入指令IN:为单字长指令,其功能是将数据开关的8位数据输入到R0寄存器;b) 加法指令ADD: 为双字长指令,第一个字为操作码,第二个操作数地址,其功能是将R0寄存器中的值与内存中地址为第二个操作数的内容加起来,并将结果存入R0寄存器中;c) 写指令STA:为双字长指令,第一个字为操作码,第二个操作数地址,其功能是将R0寄存器中的值,存储到以第二个操作数为地址的内存单元中;d) 读指令OUT:为双字长指令,第一个字为操作码,第二个操作数地址,其功能是将以第二个操作数为地址的内存单元中值读到数据总线并显示;e) 跳转指令JMP:为双字长指令,第一个字为操作码,第二个操作数地址,其功能是程序无条件跳转到第二个字指定的内存单元地址。
2.4 微指令的格式当系统建好后,微程序控制器的大部分结构也就随之确定了。
该系统采用了水平型微指令格式,微命令编码直接表示法与字段直接译码法相混合的编码方法,后续微地址由标志位判定,后续微码、后续指令自动互斥选择执行。
2.5 调试并仿真[4]以上完成了系统的绘制及编码工作,接下来对其进行以下几步调试。
a) 分别完成RAM与ROM的.hex(或.mif)文件,保存后并编译;b) 调试无错后再创建一个.vwf文件,并添加相应控制结点及数据显示灯,然后调制适当的波形(见图(2))后,再进行仿真;c) 系统的仿真波形如图(3),该图给出了系统循环执行输入指令IN,加法指令ADD,写指令STA,读指令OUT,跳转指令JMP的执行过程。
3 结束语通过该系统的设计,对于较复杂的系统,常采用的方法就是将其分成各个模块来实现,这样可以很大程度上简化整个系统的设计以及实现上的难度,充分发挥了化繁为简的作用。
通过使用Quartus II6.0对整个系统进行整体分析、模块设计、模块整合、编译仿真等操作,我们可以察觉Quartus II6.0充分发挥了设计上的优势,简单易用,便于整合,方便修改。
参考文献[1]覃贵礼,谭呈祥. 用Quartus II实现数字电路实验中的仿真[J]. 南宁师范高等专科学校学报,2005(2):71-73.[2]郑亚民,许敏. 基于Quartus II的带计时器功能的秒表系统设计[J]. 电子工程师, 2005(01):59-62.[3]王爱英. 计算机组成与结构[M]. 北京:清华大学出版社,2001.[4]Altera公司. Quartus II 软件[EB/OL]./products/software/products/quartus2/qts-index.html, 2007-8-18/2007-8-26. [5]东南大学计算机学院. ALU部件[EB/OL]./people/xuzaolin/Chapter3/untitled14.html, 2007-5-11/2007-8-23.[6]李雪梅. 用Quartu II4.0设计数字电路过程的介绍[J]. 现代电子技术, 2005(06):35-38.Design of Simple Computer based on Quartus IIGu Hui,Wang Li-chun,Cheng Yao(School of Computer Science & Technology, Nantong University, Jiangsu, China 226019)Abstract:In this article, the authors use Quartus II to design a simple computer which is controlled by micro programs. It can help us to learn the main flow of circuit simulation and deepen our knowledge of the principles of computer system.Key words: Quartus II, EDA, micro programmed control, computer。