EDA论文用程序输入法设计16位二进制加法计算器
模可变16位加法计数器

《EDA设计》报告题目:模可变16位加法计数器设计专业班级:学生姓名:指导教师:武汉理工大学信息工程学院2014 年 1 月 6 日课程设计任务书学生姓名:专业班级:指导教师:工作单位:信息工程学院题目: 模可变16位加法计数器设计初始条件:可用仪器: PC机(Quartus II软件)硬件:EDA-IV型实验箱。
要求完成的主要任务:(1)设计任务设计一个模可变16位加法计数器。
(2)设计指导设计可变16位加法计数器,可通过3个选择位M2、M1、M0实现最多8种不同模式的计数方式,例如可构成5、10、16、46、100、128、200、256进制,共8种计数模式。
(3)时间安排:2013.12.23 课程设计任务布置、选题、查阅资料2013.12.24 设计,软件编程、仿真和调试2013.12.29 实验室检查仿真结果,验证设计的可行性和正确性2013.12.30 设计的硬件调试2014.01.05 机房检查设计成果,提交设计说明书及答辩指导教师签名:年月日系主任(或责任教师)签名:年月日目录摘要 (I)Abstract........................................................... I I1 绪论 (1)2 Quartus II简介 (2)3 计数器的工作原理 (3)4 设计原理 (4)4.1 整体设计原理 (4)4.2 单元模块的设计 (5)4.3 顶层模块(整体电子线路系统)的设计 (8)5 电路系统的功能仿真 (10)6 硬件调试 (12)7 个人小结 (14)参考文献 (15)摘要计数器是数字电子技术中应用的最多的时序逻辑电路。
计数器不仅能用于对时钟脉冲计数,还可以用于分频、定时、产生节拍脉冲和脉冲序列以及进行数字运算等。
但是并无法显示计算结果,一般都是要通过外接LCD 或LED屏才能显示。
计数器的种类按照计数器中的触发器是否同时翻转分类,可将计数器分为同步计数器和异步计数器两种,如果按照计数过程中数字增减分类,又可将计数器分为加法计数器、减法计数器和可逆计数器,随时钟信号不断增加的为加法计数器,不断减少的为减法计数器,可增可减的叫做可逆计数器,另外还有很多种分类不一一列举,但是最常用的是第一种分类,因为这种分类可以使人一目了然,知道这个计数器到底是什么触发方式,以便于设计者进行电路的设计。
EDA大作业 课程设计 简易计算器

在掌握常用数字电路功能和原理的基础上,根据EDA技术课程所学知识,利用硬件描述语言Verilog HDL、EDA软件Quartus II和硬件平台Cyclone/Cyclone II FPGA进行电路系统的设计。
本次实验我完成的内容是简单计算器的设计,下面我简单的进行一下原理的阐述。
设计一个简单计算器,输入为8位二进制数,分别用两位数码管显示,输出的计算结果为16位二进制数,并用四位数码管显示,能够实现+、-、 *、/ 四种运算,其中除法的结果显示分为商和余数两部分,分别用两位数码管显示。
为了完成要求的效果显示,我先设计了一个简单的四则运算器,为了使其结果能清楚的看到,所以计算器模块和一个7段数码管模块连接。
实验要求,输入分别用两位数码管显示,输出用四位数码管显示,所以用一个3—8译码器和数码管连接,通过开关控制,形成动态显示。
从左向右,依次是第一位数码管显示a的高四位,第二位数码管显示a的低四位;第三位数码管显示b的高四位,第四位数码管显示b的低四位;第五位数码管到第八位数码管显示输出的结果。
通过改变时钟,使其看起来像同时显示在数码管上。
设计流程如下图,分别用两个数码管表示八位二进制数,用一个case 语句表示输入数值采用哪种运算方式,分别用00,01,10,11表示加,减,乘,除。
用3—8译码器选择从哪个数码管输出。
硬件流程图输出结果 A. B 的显示软件流程图LED 灯接线部分显示:中心控制 复位编码 数码管输出输入A 输入B 运算选择C 输出out L E D 8 L E D 7 L E D 6 L E D 5 L E D 4 L E D 3 L E D 2 L E D 1第三章程序简单计算器的程序如下:module jsq9(a,b,c,Dout,count,clk,rst);input[7:0]a,b;input clk,rst;input[1:0]c;output[6:0]Dout;output [2:0]count;reg[6:0]Dout;reg[2:0]count;reg[15:0]out;reg[6:0] LED7S1,LED7S2,LED7S3,LED7S4, LED7S5,LED7S6,LED7S7,LED7S8; DECL7S u1(.A(a[7:4]) , .LED7S(LED7S1));DECL7S u2(.A(a[3:0]) , .LED7S(LED7S2));DECL7S u3(.A(b[7:4]) , .LED7S(LED7S3));DECL7S u4(.A(b[3:0]) , .LED7S(LED7S4));DECL7S u5(.A(out[15:12]) , .LED7S(LED7S5));DECL7S u6(.A(out[11:8]) , .LED7S(LED7S6));DECL7S u7(.A(out[7:4]) , .LED7S(LED7S7));DECL7S u8(.A(out[3:0]) , .LED7S(LED7S8));reg[7:0]out1,out2;always@(a,b,c,Dout,count,clk,rst)case(c)2'b00:out=a+b;2'b01:out=a-b;2'b10:out=a*b;2'b11:beginout1=a/b;out2=a%b;out={out1,out2};enddefault:;endcasealways@(posedge clk or negedge rst)beginif(!rst)count<=3'b000;else if(count==3'b111)count<=3'b000;elsecount<=count+3'b001;endalways@(posedge clk)begincase(count)3'b000: Dout<=LED7S1;3'b001:Dout<=LED7S2;3'b010:Dout<=LED7S3;3'b011:Dout<=LED7S4;3'b100: Dout<=LED7S5;3'b101:Dout<=LED7S6;3'b110:Dout<=LED7S7;3'b111:Dout<=LED7S8;endcaseendendmodulemodule DECL7S (A, LED7S);input [3:0] A;output [6:0] LED7S;reg [6:0] LED7S;always @(A)begincase(A)4'b0000 : LED7S<=7'b0111111; 4'b0001: LED7S <= 7'b0000110 ; 4'b0010: LED7S <= 7'b1011011; 4'b0011: LED7S <= 7'b1001111; 4'b0100: LED7S <= 7'b1100110 ; 4'b0101: LED7S <= 7'b1101101; 4'b0110: LED7S <= 7'b1111101 ; 4'b0111: LED7S <= 7'b0000111 ; 4'b1000: LED7S <= 7'b1111111 ; 4'b1001: LED7S <= 7'b1101111 ; 4'b1010: LED7S <= 7'b1110111 ; 4'b1011: LED7S <= 7'b1111100 ; 4'b1100: LED7S <= 7'b0111001 ;4'b1101: LED7S <= 7'b1011110 ; 4'b1110: LED7S <= 7'b1111001 ; 4'b1111: LED7S <= 7'b1110001 ; endcaseendendmodule第四章模块连接在本程序中,共由三个模块组成,第一个模块是一个四选一多路器其仿真图为:第二个模块是7段数码管显示程序如下module DECL7S (A, LED7S);input [3:0] A;output [6:0] LED7S;reg [6:0] LED7S;always @(A)begincase(A)4'b0000 : LED7S<=7'b0111111;4'b0001: LED7S <= 7'b0000110 ;4'b0010: LED7S <= 7'b1011011;4'b0011: LED7S <= 7'b1001111;4'b0100: LED7S <= 7'b1100110 ;4'b0101: LED7S <= 7'b1101101;4'b0110: LED7S <= 7'b1111101 ;4'b0111: LED7S <= 7'b0000111 ;4'b1000: LED7S <= 7'b1111111 ;4'b1001: LED7S <= 7'b1101111 ;4'b1010: LED7S <= 7'b1110111 ;4'b1011: LED7S <= 7'b1111100 ;4'b1100: LED7S <= 7'b0111001 ;4'b1101: LED7S <= 7'b1011110 ;4'b1110: LED7S <= 7'b1111001 ;4'b1111: LED7S <= 7'b1110001 ;endcaseendendmodule仿真图如下:把这个两个模块用一个3—8译码器进行连接,使其达到实验的要求。
EDA创新性实验项目——16位CPU设计

EDA创新性实验项目——16位CPU设计一、项目背景随着计算机科学和技术的不断发展,人们对计算机处理速度和性能的需求也在不断增加。
在这种背景下,为了满足人们对计算速度和性能的需求,研究者们开始将目光投向了新型的CPU设计。
传统的CPU设计多为32位或64位,但这种设计可能会带来一些不必要的复杂性和成本。
因此,设计一种16位CPU成为了当前研究的热点之一二、项目目标本实验项目旨在设计一款16位CPU,以满足轻量级计算需求,并保证其性能和效率。
通过设计一款16位CPU,可以降低处理器的成本和复杂度,提高计算性能,并且更好地满足轻量级计算需求。
三、项目内容1.CPU指令设计:设计新的16位CPU指令集,包括运算指令、数据传输指令、分支跳转指令等,以实现更加高效的计算功能。
2.CPU架构设计:设计16位CPU的整体架构,包括寄存器文件、数据通路、控制单元等,确保CPU的稳定性和高效性。
3.性能优化:对设计的CPU进行性能优化,提高其计算速度和响应速度,确保其在轻量级计算中的高效性。
4.性能评估:通过仿真和实验对设计的16位CPU进行性能评估,检验其计算速度和稳定性,以保证其满足设计需求。
四、项目实施步骤1.设计CPU指令集:根据实际需求设计新的16位CPU指令集,包括指令的格式、操作码和功能,保证其具有高效的计算能力。
2.设计CPU架构:设计16位CPU的整体架构,包括寄存器文件、数据通路和控制单元,确保其能够稳定运行和高效计算。
3.性能优化:对设计的CPU进行性能优化,优化数据通路和控制单元的设计,提高CPU的计算速度和响应速度。
4.实验仿真:通过基于EDA工具进行CPU的设计仿真,检验设计的CPU在不同场景下的计算性能和稳定性。
5.性能评估:对设计的CPU进行性能评估,比较其与传统32位CPU 的性能差异,确保16位CPU在轻量级计算中的优越性。
五、项目成果通过本实验项目的实施,设计一款16位CPU并进行性能评估1.设计一款高效、稳定的16位CPU,满足轻量级计算需求。
16位加法器电路设计

16位加法器电路设计
加法器电路是计算机中常见的数字电路,用于将两个二进制数相加并得出和。
16位加法器电路设计是指设计一个能处理16位二进制数相加的电路。
在设计16位加法器电路时,需要考虑以下几个关键方面:
1. 选择合适的器件:需要选择适合的逻辑门和触发器等数字电路器件。
常用的器件包括AND门、OR门、XOR门、全加器等。
2. 划分模块:将16位加法器电路划分为若干个小模块,简化设计过程。
常见的模块包括单位加法器和级联器。
3. 单位加法器设计:单位加法器是实现加法运算的基本单元。
在16位加法器电路中,每一位均由一个单位加法器完成。
单位加法器由两个输入(被加数位和加数位)和两个输出(和位和进位位)组成。
4. 级联器设计:级联器用于连接多个单位加法器,将进位位从低位传递到高位。
在16位加法器电路中,需要将每一位的进位位和前一位的进位位相连。
5. 测试和验证:设计完成后,需要进行测试和验证,确保16位加法器电路的正确性和性能。
通过以上步骤设计完成的16位加法器电路能够实现对16位二进制数的相加操作。
在实际应用中,可以将多个16位加法器电路级联以实现更大位数的加法运算。
设计一个高效可靠的16位加法器电路是数字电路设计的重要任务之一,对于计算机的性能和功能具有重要影响。
通过仔细考虑各个方面的设计和实施,可以实现一个满足要求的16位加法器电路。
用单片机语言设计16位加法计算器实验报告

湖北第二师范学院计算机学院09计应单片机课程设计实验报告课程设计名称:电子计算器课程设计单位:10计应(1)班课设小组成员:徐凡(1060310039)凡平(1060310058)彭浩(1060310045)桂银(1060310010)潘光卉(1060300033)完成时间:2012年04月02日至2012年04月 24 日单片机课程设计实验报告课程设计题目:简易计算器作品功能描述:当通过输入键盘数字时,能够在显示器上显示输出的数值,并且通过想实现的简单运算功能,实现计算器的加、减、乘、除和清零,并将结果显示出来。
小组成员工作分工:徐凡:程序主框架的构造和主要功能函数的设计。
凡平:原理图的设计和硬件的焊接。
彭浩:基本功能函数的设计(“+,-,*,/”)。
桂银:程序流程图的设计和键盘扫描程序的实现。
潘光卉:编写文档和功能测试。
硬件电路设计:本设计中我们用的是AT89C52芯片,LCD1602 (PROTEUS中为LM016L)就是那个液晶屏,因为可以显示2行16个字符,故叫做LCD1602.11.0592M或12M晶振(CRYSTAL),两者均可,但要涉及到串口需选用12MKEYPAD-SMALLCALC就是那个4X4键盘电容20~30PF(CAP),接最小电路电容10PF主要接复位电路RESPACK-8排阻,为20K的,一个引脚接正极,另8个引脚接I/O口接RES电阻10K,接复位电路实物照片:硬件原理图原理说明:1,上电后,屏幕初始化;2,计算。
按下数字键,屏幕显示要运行的第一个数字,再按下符号键,然后再按下数字键,屏幕显示要运算的第二个数字,最后按下“=”号键,屏幕上显示出计算结果。
3,如果要再次计算,可以按下“ON/C”键清零,或者继续按下数字键,即可重新计算。
键盘使用说明如下:按键功能说明:Array“+”实现两个数的相加“-”实现两个数的相减“×”实现两个数的乘积“÷”实现两个数商的运算“ON/C”计算器显示的清零和接通电源程序控制流程图:软件设计:在程序设计方法上,模块化程序设计是单片机应用中最常用的程序设计方法。
EDA报告

班级 021031学号 02103066EDA题目 EDA实验报告学院电子工程学院专业信息对抗技术学生姓名陈龑豪02103066导师姓名朱燕练习题第一题----画出下例实体描述对应的原理图符号元件ENTITY buf3s IS -- 实体1:三态缓冲器PORT (input : IN STD_LOGIC ; -- 输入端enable : IN STD_LOGIC ; -- 使能端output : OUT STD_LOGIC ) ; -- 输出端END buf3x ;ENTITY mux21 IS --实体2: 2选1多路选择器PORT (in0, in1, sel : IN STD_LOGIC;output : OUT STD_LOGIC);END ENTITY mux21;1.三态缓冲器a) library ieee;use ieee.std_logic_1164.all;entity ex1 isport (input: in std_logic; --输入端enable: in std_logic ; --使能端output : out std_logic ) ; --输出端end ex1;architecture behav of ex1 isbeginprocess(enable,input)beginif(enable='1') thenoutput<=input ;elseoutput<='Z'; --输出为高阻态Zend if;end process;end behav;b) 在RTL viewer中的仿真电路图如下所示:c) 三态缓冲器的仿真波形图如下:2. 2选1多路选择器a) library ieee;use ieee.std_logic_1164.all;entity ex2 isport ( in0,in1,sel : in std_logic;output : out std_logic);end entity ex2;architecture behav of ex2 isbeginwith sel selectoutput<=in0 when '0',in1 when '1';end behav;b)在RTL viewer中的仿真电路图如下所示:c)2选一多路选择器的仿真波形如下:第二题 ---四选一多路选择器图中所示的是4选1多路选择器,试分别用IF_THEN语句和CASE语句的表达方式写出此电路的VHDL程序。
Removed_EDA实验16位二进制加减可控计数器

1、掌握16位二进制加减可控计数器的设计思想,完成设计;2、熟悉QuartusⅡ对程序进行编译、调试和仿真的过程;3、掌握VHDL语言的表达;4、该计数器含有异步清零和计数使能功能。
二、实验内容和原理1、实验内容:根据实验要求,在QuartusⅡ中从所要实现的功能出发编写实验代码,并进行编译、调试和仿真。
2、实验原理:用IF语句将加、减法计数器连接起来;以MODE作为控制信号,选择进行加法或减法运算;以RST作为异步清零信号,当RST为‘1’时将对计数器清零,即复位,这项操作是独立于CLK的,称异步;以EN作为始能信号,只有EN=1且RST无效(即RST=0),若此时有CLK信号,计数器才工作。
三、实验环境QuartusⅡ软件四、操作方法与实验步骤1、分析二进制加法、减法计数器工作原理,由此设计控制信号,使计数器可控;2、在QuartusⅡ中建立计数器工程,进行程序编写、调试、编译、仿真;3、对实验所得的时序图形进行分析。
五、实验数据记录和处理将程序进行仿真得到的波形图如下所示六、实验结果与分析:从仿真的时序图上可以看出,MODE的电平决定加操作还是减操作;RST为高电平有效,立即的将CQ置零;只有在EN为高电平且RST为低电平的情况下,CQ随着时钟上升沿的到来计数。
七、实验心得与体会通过该实验,我初步掌握了VHDL语言的基本使用方法,熟悉了QuartⅡ软件的操作流程。
八、程序代码LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY add16 ISPORT(CLK,RST,EN:IN STD_LOGIC;CQ:OUT STD_LOGIC_VECTOR(15 DOWNTO 0);COUT:OUT STD_LOGIC;MODE:IN STD_LOGIC);END add16;ARCHITECTURE behav OF add16 ISBEGINPROCESS(CLK,RST,EN)VARIABLE CQ_IN:STD_LOGIC_VECTOR(15 DOWNTO 0);BEGINIF RST='1' THENCQ_IN:=(OTHERS=>'0');ELSIF CLK'EVENT AND CLK='1' THENIF EN='1' THENIF MODE='1' THENIF CQ_IN<65535 THENCQ_IN:=CQ_IN+1;COUT<='0';ELSE CQ_IN:=(OTHERS=>'0'); COUT<='1';END IF;ELSIF MODE='0' THENIF CQ_IN>0 THENCQ_IN:=CQ_IN-1;COUT<='0';ELSECQ_IN:=(OTHERS=>'1');COUT<='1';END IF;END IF;END IF;END IF;CQ<=CQ_IN;END PROCESS; END behav;。
基于EDA的简易计算器的设计

EDA 课程设计报告书课题名称 基于EDA 的简易计算器的设计 姓 名学 号 院 系 专 业 指导教师年 月 日※※※※※※※※※ ※※ ※※ ※※※※※※※※※※※****级学生EDA 课程设计基于EDA的简易计算器的设计1 设计目的(1)学习面向可编程器件的FPGA的简单数字系统的设计流程;(2)掌握EDA软件Quartus II的原理图输入方式,以及硬件描述语言描述方式;(3)熟悉EDA编辑软件。
2设计的主要内容和要求1、设计一个1位全加器。
运用波形仿真检查功能正确后,将其封装成1位全加器模块。
2、以1中已封装的1位全加器模块为基础设计一个4位全加器并将其封装成模块。
3、以全加器为基础设计一个4位乘法器并封装成乘法器模块,输出显示乘积和正负数标志。
4、以2、3中生成的器件模块为基础构成一个简易计算器,实现如图2.1所示。
根据S的输入,分别完成Y=A+B或Y=A×B。
要求:(1) 加数为正时,实现两个4位二进制数与来自低位进位的加法运算,输出显示和及高位进位。
(2) 加数为负时,实现两个4位二进制数的减法运算,输出显示差的原码和正负数标志。
图2.1 简易计算器框图3 整体设计方案根据设计要求和系统所具有功能,并参考相关的文献资料经行方案,先设计一个全加器,再四位全加器,四位乘法器,然后构成简易计算器。
4 硬件电路的设计4.1 设计一位全加器一位全加器电路如图4.1所示。
其中A1、B1分别为两个加数,C1为来自低位的进位,S为输出的全加和,C01为向高位的进位。
图4.1 一位全加器检查正确无误后,进行全编译,然后将其封装成一位全加器模块,如图4..2所示。
图4.2 一位全加器模块4.2 设计四位全加器要实现一个四位全加器,能进行加减法且以原码方式输出结果,分三步进行,流程如图4.3所示。
图4.3 四位全加器流程图(1)设计四位加法器用四个一位全加器的串行接法,即可得到四位串行加法器,实现四位二进制数的加法,用原理图的方式在Quartus II中构建原理图如图4.4。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
用程序输入法设计16位二进制加法计算器班级 xxxx 姓名 xxx 学号 xxxxx内容提要:计数器是数字系统中使用较多的一种时序逻辑器件。
计数器的基本功能是统计时钟脉冲的个数,即对脉冲实现计数操作。
计数器也可以作为分频、定时、脉冲节拍产生器和脉冲序列产生器使用。
计数器的种类很多,按构成计数器中的各触发器是否使用一个时钟脉冲源来分,可分为同步计数器和异步计数器;按进位体制的不同,可分为二进制计数器、十进制计数器和任意进制计数器;按计数过程中数字增减趋势的不同,可分为加法计数器、减法计数器和可逆计数器;还有可预制数和可编计数器等等。
本次课程设计将利用众多集成电路软件软件中的Quartus II软件,使用VHDL语言编程完成论文《用程序输入方法设计一个16位二进制加法计数器》,调试结果表明,所设计的计数器正确实现了计数功能。
关键词:二进制;加法计数器;VHDL语言1问题分析计数器是数字系统中使用较多的一种时序逻辑器件。
计数器的基本功能是统计时钟脉冲的个数,即对脉冲实现计数操作。
其工作原理可概述为:当输入时钟脉冲的一个上升沿(也可以是下降沿)来临时,二进制数据的低一位加1(或减1),并向高位进1(或借1)。
在没有外部约束条件时,计数器可进行与其二进制位数对应的数值的相应进制的自循环计数,如位数为3的计数器可进行8进制的自循环加法或减法计数。
可根据需要来设置计数器的位数,并通过外部约束条件来人为设定计数器的计数模数,来得到计数进制符合需要的N 进制计数器。
所谓N 进制计数器,是指一个计数器的计数过程,在经历时钟脉冲信号的个为N 之后,二进制数据又回到初始状态的计数器。
表1.1计数器的状态表图1.1计数器的状态图2 设计原理本论文所设计的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表示进位输出。
3 程序ENTITY CNT16 ISPORT (CLK : IN BIT;Q : BUFFER INTEGER RANGE 65535 DOWNTO 0 );END;ARCHITECTURE bhv OF CNT16 ISBEGINPROCESS (CLK) BEGINIF CLK'EVENT AND CLK = '1' THENQ <= Q + 1; END IF;END PROCESS;END bhv;4 编译与仿真1.编辑文件(1)启动Quartus,双击桌面上的QuartusⅡ图标或单击开始按扭,启动QuartusⅡ。
(2)编辑文件,单击标题栏中的File→New对话框。
单击New对话框的Device Design Files 选项卡,选择编译文件的语言类型。
这里选择VHDL Files,选好后单击【OK】按钮,打开VHDL 文本编辑器窗口,并在其中输入图1所示的程序。
图1 文本编辑器输入完成之后,单击File→Save As选项,将编辑的文本文件存在已建立的文件夹c:\Users下,存盘文件名应该与VHDL程序的实体名一致,即Vhdl1.vhd。
当出现问句Do you want to create…时,可选“否”。
2.创建工程(1)打开建立新工程向导,单击File→New Project Wizard菜单,出现新建工程向导对话框,单击【Next】按钮,出现如图2所示的工程基本设置对话框。
在最上面的输入框中输入工作库文件夹的地址,本例为C:\User/GongYu/Desktop/EDA/cnt16,或者单击该对话框最上一栏右侧的【…】按钮,出现选择文件夹的目录。
(2) 将设计文件加入工程中,单击图5中的【Next】按钮,在弹出的对话框中,将与本工程有关的文件加入,有两种方法:一种是单击右边的【Add All】按钮,将设定工程目录中的所有VHDL文件加入到工程文件栏;另一种是单击【Add …】按钮,从工程目录中选出相关的VHDL文件。
图2中间的输入框就是该工程的名称,一般可以用顶层文件的名称作为工程名称,本例的顶层文件名是cnt16。
最下面的输入框要求输入顶层设计文件实体的名称,本例顶层文件的实体名称是cnt16。
图2 工程基本设置和情况(3) 选择仿真器和综合器类型,单击图2中的【Next】按钮,这时弹出选择仿真器和综合器类型的窗口。
如果选择默认的NONE,表示使用QuartusⅡ中自带的仿真器和综合器。
(4) 选择目标芯片,单击【Next】按钮,根据系统设计的实际需要选择目标芯片。
首先在Family 栏选择芯片系列。
在此栏下方,询问选择目标器件的方式,选No,表示允许编程器自动选择该系列中的一个器件;单击Yes选项,表示手动选择。
本例采用手动选择,单击【Next】按钮,选择此系列的具体芯片:EP20K30ETC144-1。
单击【Next】按钮后,弹出工程设置统计窗口。
(5) 结束设置,最后单击【Finish】按钮,结束设置。
在QuartusⅡ主窗口的左侧。
3.目标芯片的配置(1) 选择目标芯片,单击标题栏中的Assignments→Settings菜单,在弹出的对话框中选Category下的Device选项,然后在右侧选择目标芯片EP20K30ETC144-1(此芯片已在建立工程时选定了)。
也可在Available devices栏分别单击Package(封装形式)、Pin count(管脚数量)和Speed(速度)来选定芯片。
(2) 选择目标器件编程配置方式,单击【D evice & Pin Options…】按钮进入器件与管脚操作对话框,首先选择Configuration项,在此框的下方有相应的说明,在此可选Configuration方式为Passive Serial,这种方式可以直接由PC机配置,也可由专用配置器件进行配置。
使用的配置器件选Auto(系统自动配置),如图3所示。
图3 配置选项卡(3) 选择输出配置,单击Programming Files选项卡,可以选Hexadecimal,即产生下载文件的同时,产生十六进制配置文件,Start(起始地址)设为0,Count(计数)设为Up(递增方式)。
如图4所示。
此文件可用于单片机与EPROM构成的FPGA配置电路系统。
图4 程序文件选项卡(4) 选择目标器件闲置管脚的状态,单击Unused Pins选项卡,可根据实际需要选择目标器件空闲管脚的状态,有三种状态可供选择:作为输入并呈高阻状态、作为输出并呈低电平状态、作为输出并呈不确定状态。
也可以对空闲管脚不作任何选择,而由编程器自动配置。
4.编译(1)编译,单击标题栏中的Processing→Start Compilation选项,启动全程编译。
编译包括对设计输入的多项处理操作,其中包括排错、数据网表文件提取、逻辑综合、适配、装配文件(仿真文件与编程配置文件)生成,以及基于目标器件的工程时序分析等。
如果工程文件中有错误,在下方的信息栏中会显示出来。
可双击此条提示信息,在闪动的光标处(或附近)仔细查找,改正后存盘,再次进行编译,直到没有错误为止。
编译成功的标志是所有进程都完成。
(2)阅读编译报告,编译成功后可以看到编译报告。
左边栏目是编译处理信息目录,右边是编译报告。
这些信息也可以在Processing菜单下的Compilation Report处见到。
5.仿真仿真就是对设计项目进行一项全面彻底的测试,以确保设计项目的功能和时序特性符合设计要求,保证最后的硬件器件的功能与原设计相吻合。
仿真可分为功能仿真和时序仿真。
功能仿真只测试设计项目的逻辑行为,而时序仿真不但测试逻辑行为,还测试器件在最差条件下的工作情况。
(1) 建立波形文件,与MAX+plusⅡ仿真操作相同,仿真前必须建立波形文件。
单击File→New选项,打开文件选择窗口。
然后单击Other Files选项卡,选择其中的Vector Waveform File 选项。
(2) 打开波形编辑器,单击【OK】按钮,即出现空白的波形编辑器,如图5所示。
图5 波形编辑器为了使仿真时间设置在一个合理的时间区域上,单击Edit→End Time选项,在弹出窗口中的Time输入框键入50,单位选us,即整个仿真域的时间设定为50微秒。
单击【OK】按钮。
结束设置后,要将波形文件存盘。
单击File→Save as选项,将波形文件以文件名cnt16.vwf存入文件夹C:\Users中。
(3) 输入信号节点,单击View→Utility Windows→Node Finder选项,会打开一个对话框。
在该对话框的Filter空白栏中选Pins:all,然后点击【list】按钮。
在下方的Nodes Found窗口中会出现了设计工程的所有端口管脚名。
用鼠标将输入端口节点A、B和输出信号节点C逐个拖到波形编辑窗口。
单击关闭按钮,关闭Node Finder窗口。
图6 已编辑输入波形(4) 编辑输入波形,波形编辑器的按钮操作方法与MAX+plusⅡ相同。
利用这些按钮,分别给输入管脚编辑波形。
(5) 启动仿真及阅读仿真报告,单击标题栏中的Processing→Start Simulation选项,即可启动仿真器。
图7 仿真结果由仿真图可以看到仿真结果是正确的,单击左侧的栏目,能够打开仿真报告。
5 个人小结经过本次课程结课论文,自己对计数器的工作原理有了更深的理解。
本次课程设计使用的是Quartus II可编程逻辑器件软件开发平台,经过本次课程设计后,自己能够更加熟悉Quartus II软件开发平台的各项功能的操作流程。
但自己只是对Quartus II软件中的VHDL编程语言有一定的了解,而对Quartus II软件的其他功能还缺乏认识,为了在以后的学习工作中能够较熟练地使用Quartus II软件,自己还必须花一定的时间在该软件的学习上。
随着现代计算机技术的发展,各方面的设计日渐趋于自动化的计算机设计。
Quartus II作为一个功能强大的可编程逻辑器件软件开发平台,它电子线路设计自动化中的作用不言而喻。
而经过本次课程设计后,发现自己在该软件的使用能力上还是非常有限,所以对该软件的学习还有待加强。
在编程过程中发现自己对各电子线路系统的基础理论只是还相当缺乏,没有较好的基础理论知识,即使有再好的开发软件也是很难设计出有价值的电子线路系统的。
所以要不断学习积累基础理论知识,有了夯实的理论基础才能顺利设计出结构简单、性能优良的电子线路系统。