EDA 16位加法计数器的设计

合集下载

组成原理课程设计(16位全加器电路的设计与实现)

组成原理课程设计(16位全加器电路的设计与实现)

16位全加器电路的设计与实现学生姓名:杨传福指导老师:王新摘要本课程设计主要利用门电路完成一个16位的全加器电路的设计与实现。

本设计采用逐步求解的方法,即先设计一位全加器,再利用一位全加器设计出四位全加器,最后在四位全加器的基础上设计出16位全加器,并使用VHDL语言编写程序,在MAX-PLUSⅡ仿真平台上进行仿真。

仿真结果表明,本课程设计中设计出的16位全加器能正确完成16位二进制数的加法运算。

关键词全加器;门电路;先行进位Abstract:This curriculum design primarily use the gate circuit to complete a 16-bit full-adder circuit.The design solve this problem with step-by-step approach, namely start designing one full-adder, and then use one full-adder design a four full-adder , the last design the 16-bit full-adder based on the four full-adder,and use VHDL language programming, at MAX-PLUS Ⅱsimulation on simulation platform. The simulation results show that the design of the curriculum design of the 16-bit full-adder to add a 16-bit binary number addition operations.Keywords:Full-adder; Gate circuit; First binary1引言1.1课程设计的背景随着计算机科学技术的发展,人们获得信息的途径更加多样,获取信息的速度更加快捷。

EDA-16位加法计数器的设计

EDA-16位加法计数器的设计

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

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

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

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

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

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

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

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

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

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

【2017年整理】EDA实验16位二进制加减可控计数器

【2017年整理】EDA实验16位二进制加减可控计数器

**大学本科实验报告(2011-2012学年下学期)课程名称:EDA任课教员:系:专业:二0一一年十月八日《EDA》课程实验报告实验项目名称:16位二进制加减可控计数器系::指导教员:姓名:学号:成绩:同组学员姓名:实验地点: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;。

16位超前进位加法器实验报告

16位超前进位加法器实验报告

实验名称:十六位超前进位加法器一、实验目的设计、验证并优化16位超前进位加法器的逻辑功能。

二、实验原理1、1位全加器原理全加器的求和输出信号和进位信号,定义为输入变量A、B、C的两种组合布尔函数:求和输出信号 = A ⊕ B ⊕ C进位信号 = AB + AC + BC实现这两个函数的门级电路如下图。

并不是单独实现这两个函数,而是用进位信号来产生求和输出信号。

这样可以减少电路的复杂度,因此节省了芯片面积。

上述全加器电路可以用作一般的n位二进制加法器的基本组合模块,它允许两个n 位的二进制数作为输入,在输出端产生二进制和。

最简单的n位加法器可由全加器串联构成,这里每级加法器实现两位加法运算,产生相应求和位,再将进位输出传到下一级。

这样串联的加法器结构称为并行加法器,但其整体速度明显受限于进位链中进位信号的延迟。

因此,为了能够减少从最低有效位到最高有效位的最坏情况进位传播延时,最终选择的电路是十六位超前加法器。

2、超前进位加法器原理超前进位加法器的结构如下图。

超前进位加法器的每一位由一个改进型全加器产生一个进位信号gi和一个进位传播信号pi,其中全加器的输入为Ai和Bi,产生的等式为:改进的全加器的进位输出可由一个进位信号和一个进位传输信号计算得出,因此进位信号可改写为:式中可以看出,当gi = 1(Ai = Bi = 1)时,产生进位;当pi = 1(Ai =1或Bi = 1)时,传输进位输入,这两种情况都使得进位输出是1。

近似可以得到i+2和i+3级的进位输出如下:下图为一个四位超前进位加法器的结构图。

信号经过pi和gi产生一级时延,经过计算C产生一级时延,则A,B输入一旦产生,首先经过两级时延算出第1轮进位值C’不过这个值是不正确的。

C’再次送入加法器,进行第2轮2级时延的计算,算出第2轮进位值C,这一次是正确的进位值。

这里的4个4位超前进位加法器仍是串行的,所以一次计算经过4级加法器,一级加法器有2级时延,因此1次计算一共经过8级时延,相比串行加法器里的16级时延,速度提高很多。

模可变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屏才能显示。

计数器的种类按照计数器中的触发器是否同时翻转分类,可将计数器分为同步计数器和异步计数器两种,如果按照计数过程中数字增减分类,又可将计数器分为加法计数器、减法计数器和可逆计数器,随时钟信号不断增加的为加法计数器,不断减少的为减法计数器,可增可减的叫做可逆计数器,另外还有很多种分类不一一列举,但是最常用的是第一种分类,因为这种分类可以使人一目了然,知道这个计数器到底是什么触发方式,以便于设计者进行电路的设计。

16位加法器设计

16位加法器设计

计算机组成原理课程设计报告题目 16位加法器设计B院系信息科学技术学院专业计算机科学与技术班级 11计本(2)教师学生学号内容提要本设计在其他基本加法器的基础上改进为超前进位加法器,它避免了串行进位加法器的进位延迟,提高了速度。

其主要分为四章,第一章为设计概述,主要介绍设计的任务、目标,以及设计环境,第二章为总体设计方案,其主要介绍本设计中系统设计的框架。

第三章为仿真测试,给出了系统在仿真环境下波形测试结果,看是否满足题目要求。

第四章为设计心得总结,主要是介绍在经过本次设计后,自己的一些心得体会。

最后还给出了本设计的一些参考文献。

前言计算机组成原理是一门实践性很强的课程;其课程设计目的在于综合运用所学知识,全面掌握微型计算机及其接口的工作原理、编程和使用方法;在设计中,通过小组协作提出设计方案,进行软件设计、调试,最后获得正确的结果,可以加深和巩固对理论知识的更好掌握,进一步建立计算机应用系统体概念,初步掌握单片机软、硬件开发方法,为以后进行实际的单片机软、硬件应用开发奠定良好的基础。

本设计是利用74181、74182芯片组成了16位加法器的组间组内并行。

目录1设计概述 (5)1.1设计任务 (5)1.2 设计要求 (5)1.3设计环境 (5)2总体设计方案 (6)3仿真测试 (9)4设计个人总结 (10)参考文献: (10)1设计概述1.1设计任务1、掌握MaxPlus2软件的使用方法。

2、熟悉74系列芯片的组成和工作过程。

3、掌握半加器,一位全加器的设计原理,掌握超前进位产生电路的设计方法。

4、正确将电路原理图下载到试验箱中。

5、正确通过实验箱连线实现一位二进制数的相加并得到正确结果。

6、完成设计实验报告。

7、完成课程设计答辩。

1.2 设计要求1、巩固和运用所学课程,理论联系实际,提高分析、解决计算机技术实际问题的独立工作能力。

2、学会使用MAX-PLUSⅡ软件设计电路原理图及功能模拟3、熟悉常用的门电路1.3设计环境MaxPlus22总体设计方案1、半加器的设计原理 半加器逻辑电路半加器逻辑表达式 S=B A ⊕ AB C =半加器真值表A B C S 0 0 0 0 0 1 0 1 1 0 0 1 11 1 02、一位全加器的设计原理 一位全加器逻辑电路CA B S=1&74182一位全加器逻辑表达式进位输出()i i i i i i B A C B A C +⊕=-1相加之和 1-⊕⊕=i i i i C B A F 一位加法器真值表A B 1-i C F i C 0 0 0 0 0 0 1 0 1 0 1 0 0 1 0 1 1 0 0 1 0 0 1 1 0 0 1 1 0 1 1 0 1 0 1 111113、十六位并行加法器的设计思路1. 先设计一个半加器然后两个半加器合并成一个一位的全加器,最后用16个一位的全加器组合成一个16位的全加器;2. 先设计一个一位全加器,然后16个并联组成一个16位全加器3. 使用4片74181和1片74182芯片采用双重分组跳跃进位组成16位并行加法器这里我们组采用的是第三个方法来实现16位并行加法器的。

EDA大作业 课程设计 简易计算器

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译码器进行连接,使其达到实验的要求。

16位超前加法器实验报告

16位超前加法器实验报告

16位超前加法器设计实验一、实验分析:四位超前进位加法器HDL程序:module add4_head ( a, b, ci, s, pp, gg);input[3:0] a;input[3:0] b;input ci;output[3:0] s;output pp;output gg;wire[3:0] p;wire[3:0] g;wire[2:0] c;assign p[0] = a[0] ^ b[0];assign p[1] = a[1] ^ b[1];assign p[2] = a[2] ^ b[2];assign p[3] = a[3] ^ b[3];assign g[0] = a[0] & b[0];assign g[1] = a[1] & b[1];assign g[2] = a[2] & b[2];assign g[3] = a[3] & b[3];assign c[0] = (p[0] & ci) | g[0];assign c[1] = (p[1] & c[0]) | g[1];assign c[2] = (p[2] & c[1]) | g[2];assign pp = p[3] & p[2] & p[1] & p[0];assign gg = g[3] | (p[3] & (g[2] | p[2] & (g[1] | p[1] & g[0])));assign s[0] = p[0] ^ ci;assign s[1] = p[1] ^ c[0];assign s[2] = p[2] ^ c[1];assign s[3] = p[3] ^ c[2];endmodulep表示进位否决信号(pass),如果p为0就否决调前一级的进位输入。

否决的意思就是即使前一级有进位,本级也不会向后一级产生进位输出。

16位加法器电路设计

16位加法器电路设计

16位加法器电路设计
加法器电路是计算机中常见的数字电路,用于将两个二进制数相加并得出和。

16位加法器电路设计是指设计一个能处理16位二进制数相加的电路。

在设计16位加法器电路时,需要考虑以下几个关键方面:
1. 选择合适的器件:需要选择适合的逻辑门和触发器等数字电路器件。

常用的器件包括AND门、OR门、XOR门、全加器等。

2. 划分模块:将16位加法器电路划分为若干个小模块,简化设计过程。

常见的模块包括单位加法器和级联器。

3. 单位加法器设计:单位加法器是实现加法运算的基本单元。

在16位加法器电路中,每一位均由一个单位加法器完成。

单位加法器由两个输入(被加数位和加数位)和两个输出(和位和进位位)组成。

4. 级联器设计:级联器用于连接多个单位加法器,将进位位从低位传递到高位。

在16位加法器电路中,需要将每一位的进位位和前一位的进位位相连。

5. 测试和验证:设计完成后,需要进行测试和验证,确保16位加法器电路的正确性和性能。

通过以上步骤设计完成的16位加法器电路能够实现对16位二进制数的相加操作。

在实际应用中,可以将多个16位加法器电路级联以实现更大位数的加法运算。

设计一个高效可靠的16位加法器电路是数字电路设计的重要任务之一,对于计算机的性能和功能具有重要影响。

通过仔细考虑各个方面的设计和实施,可以实现一个满足要求的16位加法器电路。

Removed_EDA实验16位二进制加减可控计数器

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;。

16位累加器设计报告

16位累加器设计报告

16位累加器设计报告引言累加器(Accumulator)是一种重要的数字电路,广泛应用于计算机的中央处理器(CPU)中。

累加器的主要功能是将多个数字数据进行相加,并将结果储存到一个寄存器中。

本报告将详细介绍一个基于16位累加器的设计方案。

设计目标本设计的目标是实现一个16位累加器,能够对输入的两个16位数字进行相加,并将结果保存在累加器中。

设计要求如下:1. 输入端包括两个16位的数据A 和B。

2. 输出端为一个16位的累加器结果。

3. 设计采用组合逻辑电路实现。

输入变化时,累加器能够立即给出结果。

设计思路根据设计目标,我们可以分析得出以下设计思路:1. 设计一个16位加法器。

2. 将输入的数据A 和B 输入到加法器中进行相加。

3. 将相加的结果输出到一个16位寄存器中,作为累加器的输出。

16位加法器的设计16位加法器是累加器的核心组件之一。

我们使用全加器来实现16位加法器。

一个全加器能够实现两个输入位和一个进位位的加法,并给出一个输出位和一个进位位。

我们将使用16个全加器来构建16位加法器。

每个全加器的输入为两个加数位和进位位,输出为加法结果和进位结果。

下图是一个全加器的逻辑电路图:plaintext_______AB Full SCi Adder_______Co其中,A 和B 分别是两个输入的加数位,Ci 是输入的进位位,S 是加法结果,Co 是进位结果。

根据全加器的逻辑电路图,我们可以设计一个16位的加法器,将输入的两个16位数字进行相加,并给出16位的输出结果。

累加器的设计基于16位加法器的设计,我们可以构建一个16位累加器。

累加器的设计如下:1. 输入端包括两个16位的数据A 和B。

2. 将输入的两个16位数据A 和B 输入到16位加法器中,进行相加。

3. 将加法器的输出结果输入到一个16位寄存器中,作为累加器的输出。

下图是16位累加器的逻辑电路图:plaintext___________________AB 16-bit Adder___________________Output总结本设计报告介绍了一个基于16位累加器的设计方案。

EDA课程设计十六位乘加器华侨大学

EDA课程设计十六位乘加器华侨大学

EDA实验报告十六位硬件乘加器电路学号 1215102057姓名张凌枫班级 12电子信息工程A华侨大学电子工程系1、题目名称:十六位硬件乘加器电路2、摘要:采用流水线方式来实现对8个16位数据进行乘法和加法运算(yout=a0⨯b0+a1⨯b1+a2⨯b2+a3⨯b3),使用乘法器lpm_mult2、16位加法器ADDER16B、计数器cnt16以及锁存器en_dff四个模块。

当clock 出现上升沿时,对输入端输入的两个数dataa、datab进行乘法运算。

将结果输入锁存器中,锁存上一阶段计算得到的值, 16位加法器ADDER16B将锁存器锁存的上一阶段的值与进行完乘法计算得到的值dataa*datab加起来,并输出结果。

计数器cnt16用于区分四组乘加所得数,当有一个上升沿脉冲送入cnt16时,若计数不到5,则进行计数+1,若计数达到5,COUT输出进位信号到锁存器en_dff的reset 端口,将锁存器复位清零,重新进行计数。

此设计经过仿真与硬件测试检验后证实可行。

3、目录4.1系统设计 (4)4.1.1设计要求4.1.2系统设计方案(1)系统设计思路(2)总体方案的论证与比较(3)各功能块的划分与组成(4)系统的工作原理4.2单元电路设计 (6)4.2.1各单元电路的工作原理4.2.2各单元电路电路分析与设计4.3软件设计 (12)4.3.1软件设计平台、开发工具和实现方法4.3.2程序的流程方框图4.3.3实现的功能、程序清单4.4系统测试 (16)4.4.1系统的性能指标4.4.2功能的测试方法、步骤4.4.3仪器设备名称、型号4.4.4测试数据、图表4.5结论 (19)4.5.1对测试结果和数据的分析和计算4.5.2对于此设计的评价4、正文4.1系统设计4.1.1设计要求设计要求:位宽16位;能对8个16位数据进行乘法和加法运算(yout=a0⨯b0+a1⨯b1+a2⨯b2+a3⨯b3),并行、串行或流水线方式。

用单片机语言设计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,接复位电路实物照⽚:硬件原理图原理说明:2,计算。

按下数字键,屏幕显⽰要运⾏的第⼀个数字,再按下符号键,然后再按下数字键,屏幕显⽰要运算的第⼆个数字,最后按下“=”号键,屏幕上显⽰出计算结果。

3,如果要再次计算,可以按下“ON/C”键清零,或者继续按下数字键,即可重新计算。

键盘使⽤说明如下:按键功能说明:Array“+”实现两个数的相加“-”实现两个数的相减“×”实现两个数的乘积“÷”实现两个数商的运算“ON/C”计算器显⽰的清零和接通电源程序控制流程图:软件设计:在程序设计⽅法上,模块化程序设计是单⽚机应⽤中最常⽤的程序设计⽅法。

EDA实验报告 4位全加器,16位频率计数器

EDA实验报告 4位全加器,16位频率计数器

实验课程名称:EDA技术与应用实验项目名称4位全加器实验实验成绩实验者专业班级组别同组者实验日期一、实验目的1.进一步加深理解全加器的工作原理及电路组成,加深对EDA技术的掌握。

2.熟悉利用Quartus Ⅱ的原理图输入方法设计简单组合电路,掌握层次化设计的方法,并通过一个四位全加器的设计把握原理图输入方式设计的详细流程。

二、实验内容实验内容1:按照书本4.5.1节完成半加器和1位全加器的设计,包括用原理图输入,编译,综合,适配,仿真,实验板上的硬件测试,并将此全加器电路设置成一个元件符号入库。

实验内容2:建立一个更高层次的原理图,利用以上获得的1位全加器构成4位全加器,并完成编译,综合,适配,仿真和硬件测试。

三、实验仪器1.计算器及操作系统2.Quartus II软件四、实验原理一个4位全加器可以由4个1位全加器构成,加法器间的进位可以串行方式实现,即将低位加法器的进位输出cout与相邻的高位加法器的最低进位输入信号cin相接。

1、半加器描述根据半加器真值表可以画出半加器的电路图。

a b so Co0 0 0 00 1 1 01 0 1 01 1 0 1表1半加器h_adder真值表图1 半加器h_adder电路图2、1位全加器描述一位全加器可以由两个半加器和一个或门连接而成,因而可以根据半加器的电路原理图或真值表写出1位全加器的VHDL 描述。

图2 1位全加器电路图3、4位全加器设计描述4位全加器可以看做四个1位全加器级联而成,首先采用基本逻辑门设计一位全加器,而后通过多个1位全加器级联实现4位全加器。

其中,其中cin 表示输入进位位,cout 表示输出进位位,输入A 和B 分别表示加数和被加数。

S 为输出和,其功能可用布尔代数式表示为:S=A+B+Ciii i i o ABC ABC ABC ABC C +++=首先根据一位全加器的布尔代数式应用基本逻辑门设计一位全加器,而后仿真验证一位全加器设计,准确无误后生成元件,供4位全加器设计用。

数字集成电路课程设计16位加法器

数字集成电路课程设计16位加法器

数字集成电路课程设计——16位加法器设计参数:*输入两个16位的补码*输出一个17位的补码*允许采用流水线、单元复用等技术实现设计要求:*使用RTL级Verilog描述加法器架构*使用门级验证加法器功能(ModelSim等仿真)*优化方向:加法器等效总门数最少*等效门数计算示例:INV=1, NOR2=NAND2=2, DFF=4最终优化结果:图1.1单个全加器单元的最终优化方案图1.2 第17位结果的运算电路最终总共等效门数= 16 X 17 + 7 = 279仿真结果:1 2 3 4 5图2. ModelSim仿真结果如图2所示,箭头1所指区域为两个16位全0的加数,无进位,输出和为0;箭头2所指区域为0与1000000000000000(-32768)相加,无进位,输出和为11000000000000000(-32768);箭头3所指区域为0与1111111111111111(-1)相加,无进位,输出和为11111111111111111(-1);箭头4所指区域为-1与1000000000000000(-32768)相加,无进位,输出和为10111111111111111(-32769);箭头4所指区域为-1与1000000000000000(-32768)相加,进位为1,输出和为11000000000000000(-32768)。

可见已正确实现了16位补码加法器的功能。

设计思路:首先,我们需要明确加法器的设计。

按照题目的要求,我们的加法器必须满足以下几个原则:1、16位加法器,且可以计算出第17位的进位;2、可以计算补码;3、设计出的结构门数最少.由上面的要求,我们可以有对应的设计:1.我们假定16位数据本身就是以补码形式储存的,那么最高位就是符号位,0代表正数,1代表负数;由此,我们可以根据二进制加法的规则得知,计算补码不需要对储存的补码进行任何形式的修改,利用正常的全加器结构就可以计算出正确的结论,包括位数扩展的要求也能满足;2.要完成17位的补码计算,需要进行符号位扩展,也就是将加数和被加数的最高位重复一次变成17位的数据,如1000000000000000变为11000000000000000;在编码的时候,需要17个加法器,但是最后一个加法器的加数和被加数重复使用16位的数据,而进位则采用16位得到的进位;3.加法器必须是一般意义上的加法器,除非采用流水线结构,否则不应使用时序逻辑,如下图所示的设计就不合理。

16位快速加法器32位快速加法器(运算器设计)

16位快速加法器32位快速加法器(运算器设计)

16位快速加法器32位快速加法器(运算器设计)快速加法器的设计基于全加器和半加器的组合。

全加器可以实现对两个二进制位的相加,并且可以处理进位。

半加器只能处理两个二进制位的相加,但不能处理进位。

快速加法器通过使用多个全加器和半加器的级联来实现对多个二进制位的相加,并处理进位。

一个16位快速加法器通常由16个全加器组成,每个全加器对应一个二进制位的相加。

输入端包括两个16位的二进制数A和B,以及一个进位输入Cin。

输出端包括一个16位的二进制数S和一个进位输出Cout。

快速加法器的设计中还考虑了进位的传递问题。

通常情况下,每个全加器的进位输入都连接到前一个全加器的进位输出。

这样,在相加的过程中,进位会从低位传递到高位。

为了提高运算器的效率,可以采用并行运算的方式。

32位快速加法器可以通过将两个16位快速加法器并联来实现。

其中,一个加法器负责处理前16位,另一个加法器负责处理后16位。

这样可以同时进行两个16位数的相加,大大提高了加法操作的速度。

快速加法器的工作原理如下:1.将输入的两个16位二进制数A和B送入第一个全加器,通过16个全加器的级联实现对各位的相加,并处理进位。

2.每个全加器的输出与相应的进位输入连线,以实现进位的传递。

3.得到的16位二进制数S作为输出。

对于32位快速加法器,它由两个16位快速加法器组成,其中第一个加法器处理低16位,第二个加法器处理高16位。

输入的两个32位二进制数A和B被拆分为两个16位数,并分别送入两个加法器进行相加。

最后,两个相加的结果通过一个与门来判断是否有进位,进一步得到32位的二进制数S和进位输出Cout。

快速加法器是计算机中常用的运算器,它在高速计算和数据处理方面具有重要的作用。

通过合理的设计和优化,可以实现更高效的加法操作,提高计算机的性能。

同时,快速加法器的设计还需要考虑功耗和面积等因素,以实现更好的综合性能。

16位补码加减运算电路设计

16位补码加减运算电路设计

16位补码加减运算电路设计
在计算机的运算过程中,加法和减法是最为基本和常见的运算方式,因此设计一种能够进行16位补码加减运算的电路是非常有意义的。

16位补码加减运算电路的设计需要考虑以下几点:
1. 确定电路的输入和输出:电路的输入应包括两个16位补码数,分别表示要进行加减运算的两个数;电路的输出则应为一个16位补码数,表示运算结果。

2. 确定补码加减运算的实现方式:补码加减运算可以通过分别
实现补码的加法和减法来实现。

而且,补码的减法可以通过将减数取
反并加1转换成加法来实现。

3. 设计补码加法电路:补码加法的实现可以通过将加数、被加
数和进位的状态作为输入,然后按位计算加法,得出每一位的相加和
以及进位,最后得出完整的加法结果。

4. 设计补码减法电路:补码减法的实现可以通过将减数以补码
形式表示,并将其取反再加1,得到负数表示,然后再使用补码加法器来实现减法。

5. 设计补码加减运算控制电路:需要设计控制电路来判断在进
行补码加减运算时应该使用补码加法器还是补码减法器。

在实际设计过程中,还需要考虑一些其他方面的问题,例如电路
的稳定性、功耗和面积等问题。

通过认真的设计和测试,最终可以得
到一种高效、稳定的16位补码加减运算电路。

这种电路对计算机系统的运算速度和效率起着至关重要的作用,因此它的设计和优化具有非常重要的意义。

16位全加器课程设计

16位全加器课程设计

16位全加器课程设计一、教学目标本节课的教学目标是让学生掌握16位全加器的原理和设计方法。

知识目标包括:理解全加器的概念,掌握全加器的真值表和逻辑表达式,了解16位全加器的组成和运作原理。

技能目标包括:能够运用逻辑代数和简单的数字电路设计方法,设计出一个16位全加器。

情感态度价值观目标包括:培养学生的创新意识和团队合作精神,提高学生对电子技术的兴趣和热情。

二、教学内容本节课的教学内容主要包括16位全加器的原理和设计方法。

首先,介绍全加器的概念和真值表,让学生理解全加器的作用和基本运作原理。

然后,讲解16位全加器的组成和运作原理,让学生了解16位全加器是如何由多个全加器级联而成的。

接下来,通过实例分析,讲解16位全加器的设计方法,让学生学会如何设计出一个16位全加器。

三、教学方法为了达到本节课的教学目标,我们将采用讲授法、讨论法和实验法等多种教学方法。

首先,通过讲授法,向学生讲解全加器的原理和设计方法。

然后,通过讨论法,让学生分组讨论全加器的运作原理和设计方法,促进学生之间的交流和合作。

最后,通过实验法,让学生动手设计并验证16位全加器,提高学生的实践能力和创新能力。

四、教学资源为了支持本节课的教学内容和教学方法,我们将准备教材、参考书、多媒体资料和实验设备等教学资源。

教材和参考书将提供全加器的原理和设计方法的相关知识,多媒体资料将通过图像和视频的形式,帮助学生更直观地理解全加器的运作原理。

实验设备将用于学生的动手实践,让学生亲自设计并验证16位全加器。

五、教学评估本节课的教学评估将采用多元化的评估方式,以全面、客观、公正地评价学生的学习成果。

评估方式包括平时表现、作业和考试等。

平时表现将根据学生在课堂上的参与度、提问和回答问题的积极性等进行评估。

作业将包括练习题和设计项目,以检验学生对16位全加器原理和设计方法的理解和应用能力。

考试将包括笔试和实验操作考试,以检验学生的理论知识和实践能力。

通过这些评估方式,我们将全面了解学生的学习成果,并根据需要进行教学调整。

16位超前进位加法器的设计_谢莹

16位超前进位加法器的设计_谢莹

第27卷第4期合肥工业大学学报(自然科学版)Vol.27No.4 2004年4月JO URN AL O F HEFEI UN IV ERSITY O F TECHNO LOGY Apr.2004 16位超前进位加法器的设计谢 莹, 陈 琳(安庆师范学院教育技术系,安徽安庆 246011)摘 要:电子计算机是由具有各种逻辑功能的逻辑部件组成的,加法器就属于其中的组合逻辑电路。

如果对传统的加法器电路进行改进,在超前进位链的基础上,用一种新的超前进位链树的设计方法不仅可以克服串行进位加法器速度低的缺点,也可以解决单纯的超前进位加法器带负载能力不足等问题,从而在实际电路中使加法器的运算速度达到最优。

根据这种理论,可以推导得到最优的任意位加法器。

关键词:半加器;全加器;超前进位加法器;4位超前进位加法器;16位超前进位加法器中图分类号:T P342.21 文献标识码:A 文章编号:1003-5060(2004)04-0450-05Design of16-bit carry look-ahead adderXIE Ying, CHEN Lin(Dept.of Ed ucational Technology,Anqing Teachers College,Anqing246011,China)Abstract:A com puter is com prised of so me logic parts w hich hav e serial lo gic functions,and the adder is one o f the combine logic circuits.In o rder to im prov e the traditio nal adder circuit,based on the carry lo ok-ahead techno logy,a new desig n o f ca rry look-ahead chain is presented so tha t the low speed of serial adders and the less car ry capacity of the pure carry look-ahead adder ca n be ov erco me.Thus the o ptimum com pute speed can be achiev ed in the real circuit.Based on the presented idea,the ex cellent ra ndo m bit adder can be deduced.Key words:half adder;full adder;carry look-ahead adder;4-bit carry look-ahead adder;16-bit carry lo ok-ahead adder0 引 言电子计算机是由具有各种逻辑功能的逻辑部件组成的,这些逻辑部件按其功能结构又可分为组合逻辑电路和时序逻辑电路。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

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

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

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

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

本次课程设计将利用众多集成电路软件软件中的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 通过和DSP Builder工具与Matlab/Simulink相结合,可以方便地实现各种DSP应用系统;支持Altera的片上可编程系统(SOPC)开发,集系统级设计、嵌入式软件开发、可编程逻辑设计于一体,是一种综合性的开发平台。

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

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

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

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

在没有外部约束条件时,计数器可进行与其二进制位数对应的数值的相应进制的自循环计数,如位数为3的计数器可进行8进制的自循环加法或减法计数。

可根据需要来设置计数器的位数,并通过外部约束条件来人为设定计数器的计数模数,来得到计数进制符合需要的N进制计数器。

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

表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 0 2n 1 1 1..11 1 1 2n+1 0 0 0..00 0 03 设计原理本论文所设计的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中的【D evice & 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 空闲管脚设置选项卡4.编译(1)编译单击标题栏中的Processing→Start Compilation选项,启动全程编译。

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

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

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

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

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

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

相关文档
最新文档