EDA 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位加法计数器
《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位加法计数器_2012301889韩博文
模可变16位加法计数器1、设计要求:模可变16位计数器,可以构成五进制、十进制、十六进制、四十六进制、一百进制、一百二十八进制、二百进制和二百五十六进制共8种计数模式(这些模式通过3个选择为M2、M1、M0实现)。
2、设计思路:在每个时钟的上升沿检测,当计数到达进制上限时,将计数值清零。
对应不同的模,将计数器进制上限根据M值变化,即可达到可变模的目的。
3、VHDL程序及注释LIBRARY ieee;USE ieee.std_logic_1164.all;USE ieee.std_logic_unsigned.all;ENTITY VHDL1ISPORT(CLK:IN std_logic;M:IN std_logic_vector(2DOWNTO0);Q:BUFFER std_logic_vector(15DOWNTO0));END VHDL1;//与示例程序不同,取名为VHDL1ARCHITECTURE behav OF VHDL1ISBEGINPROCESS(CLK,M)BEGINIF CLK'EVENT AND CLK='1'THENIF M=0THENIF Q<4THEN、//与示例程序不同,Q<5处理则会导致一个时钟周期内出现5这一计数值,即使进制变为6进制,故修改之。
下同。
Q<=Q+1;ELSEQ<="0000000000000000";END IF;ELSIF M=1THENIF Q<9THENQ<=Q+1;ELSEQ<="0000000000000000";END IF;ELSIF M=2THENIF Q<15THENQ<=Q+1;ELSEQ<="0000000000000000";END IF;ELSIF M=3THENIF Q<45THENQ<=Q+1;ELSEQ<="0000000000000000";END IF;ELSIF M=4THENIF Q<99THENQ<=Q+1;ELSEQ<="0000000000000000";END IF;ELSIF M=5THENIF Q<127THENQ<=Q+1;ELSEQ<="0000000000000000";END IF;ELSIF M=6THENIF Q<199THENQ<=Q+1;ELSEQ<="0000000000000000";END IF;ELSIF M=7THENIF Q<255THENQ<=Q+1;ELSEQ<="0000000000000000";END IF;ELSEQ<="0000000000000000";END IF;END IF;END PROCESS;END behav;4、实验仿真电路5、实验波形仿真结果取时钟周期CLK=2us,得到如下结果:5进制时:10进制时: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创新性实验项目——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位全加器电路的设计与实1
16位全加器电路的设计与实现(课程设计)默认分类2010-06-29 11:07:45 阅读282 评论0 字号:大中小订阅四川理工学院课程设计任务书设计题目:采用门电路设计一个16位的全加器电路系别: 计算机学院专业: 计算机科学与技术08级6班指导教师: 朱文忠学生姓名: 杨世刚目录? 引言 (1)1、设计背景 (1)2、关键技术的介绍及设计分工 (1)? 设计过程 (2)1、设计目的 (2)2、设计的内容 (2)3、设计的组成原理分析 (3)? 硬件方案 (4)1、半加器原理 (4)2、全加器原理 (5)3、一位全加器 (7)4、四位先行进位加法器的逻辑设计 (8)5、十六位全加器的设计 (10)6、十六位全加器的基本原理 (10)7、真值表的建立 (11)8、十六位全加器的功能及电路图设计 (12)? 软件方案 (14)1、用VHDL编写代码验证 (14)? 可行性论证 (19)1、课程设计的可行性分析 (19)2、结果分析 (19)? 总结 (20)1、实验结论 (20)? 参考文献 (21)? 引言设计的背景:全加器的运用是相当的广泛的,像各种各样的CPU和某些模型机,然而对于快速正确的加法器的设计是相当的重要的,所以在这次课程设计我选择对全加器的设计与实现。
总的来说多位加法器的构成有两种方式:并行进位(又叫超前进位)和串行进位方式。
并行进位加法器设有并行进位产生逻辑,运算速度快;串行进位方式是将全加器级联构成多位加法器。
并行进位的并行加法器又可以分为组内并行、组间串行的进位链和组内并行、组间并行的进位链。
通常,并行加法器比串行级联加法器占用更多的资源,并且随着位数的增加,相同位数的并行加法器比串行加法器的资源占用差距也会越来越大。
它们的目的就是要进位信号的产生尽可能的快,因此产生了二重进位链或更高重进位链,显然进位速度的提高是以硬件设计的复杂化为代价来实现的。
另外一个器件需要进一步的更新换代,在我们所学的知识领域里面,我们认为应该需要两个方面,一个是设计,有一个好的设计,它就像一种需求一样,即使这种设计在实际上暂时无法得到应用,但是,在一定时期以后,它是可以实现的。
16位加法器电路设计
16位加法器电路设计
加法器电路是计算机中常见的数字电路,用于将两个二进制数相加并得出和。
16位加法器电路设计是指设计一个能处理16位二进制数相加的电路。
在设计16位加法器电路时,需要考虑以下几个关键方面:
1. 选择合适的器件:需要选择适合的逻辑门和触发器等数字电路器件。
常用的器件包括AND门、OR门、XOR门、全加器等。
2. 划分模块:将16位加法器电路划分为若干个小模块,简化设计过程。
常见的模块包括单位加法器和级联器。
3. 单位加法器设计:单位加法器是实现加法运算的基本单元。
在16位加法器电路中,每一位均由一个单位加法器完成。
单位加法器由两个输入(被加数位和加数位)和两个输出(和位和进位位)组成。
4. 级联器设计:级联器用于连接多个单位加法器,将进位位从低位传递到高位。
在16位加法器电路中,需要将每一位的进位位和前一位的进位位相连。
5. 测试和验证:设计完成后,需要进行测试和验证,确保16位加法器电路的正确性和性能。
通过以上步骤设计完成的16位加法器电路能够实现对16位二进制数的相加操作。
在实际应用中,可以将多个16位加法器电路级联以实现更大位数的加法运算。
设计一个高效可靠的16位加法器电路是数字电路设计的重要任务之一,对于计算机的性能和功能具有重要影响。
通过仔细考虑各个方面的设计和实施,可以实现一个满足要求的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位并行加法器的。
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位累加器设计报告引言累加器(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实验报告十六位硬件乘加器电路学号 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位加法计算器实验报告概要湖北第⼆师范学院计算机学院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位全加器实验实验成绩实验者专业班级组别同组者实验日期一、实验目的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位的补码*输出一个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.加法器必须是一般意义上的加法器,除非采用流水线结构,否则不应使用时序逻辑,如下图所示的设计就不合理。
eda课程设计计数器
eda课程设计 计数器一、课程目标知识目标:1. 理解计数器的基本概念,掌握其工作原理;2. 学会运用EDA工具进行计数器的设计与仿真;3. 掌握计数器的应用场景,了解其在数字系统中的作用。
技能目标:1. 能够运用所学知识,设计简单的计数器电路;2. 熟练使用EDA工具进行电路的绘制、仿真和调试;3. 培养动手实践能力和团队协作能力,提高问题解决能力。
情感态度价值观目标:1. 培养学生对电子设计的兴趣,激发学习热情;2. 培养学生的创新意识和探究精神,鼓励尝试和改进;3. 增强学生的责任感,认识到计数器在现代社会生活中的重要性。
课程性质:本课程为电子设计自动化(EDA)课程的实践环节,旨在让学生通过动手实践,掌握计数器的设计与应用。
学生特点:学生具备一定的电子基础知识,对EDA工具有一定的了解,具有较强的学习能力和动手能力。
教学要求:结合学生特点和课程性质,注重理论与实践相结合,强调动手实践,培养学生的实际操作能力。
通过本课程的学习,使学生能够将所学知识应用于实际项目中,提高其电子设计能力。
教学过程中,关注学生的学习进度,及时调整教学策略,确保课程目标的实现。
二、教学内容1. 计数器原理讲解:- 理解异步计数器与同步计数器的工作原理;- 掌握二进制、十进制和任意进制计数器的设计方法。
2. EDA工具使用:- 学习并熟练使用Multisim、Proteus等EDA工具进行计数器电路设计;- 掌握电路绘制、仿真和调试的基本步骤。
3. 实践操作:- 设计并实现一个简单的二进制计数器电路;- 设计并实现一个十进制计数器电路;- 尝试设计任意进制计数器电路。
4. 教学大纲:- 第一章:计数器原理及分类;- 第二章:EDA工具的基本操作;- 第三章:二进制计数器设计与实践;- 第四章:十进制计数器设计与实践;- 第五章:任意进制计数器设计与实践。
5. 教学内容安排与进度:- 原理讲解:2课时;- EDA工具使用:2课时;- 二进制计数器设计:2课时;- 十进制计数器设计:2课时;- 任意进制计数器设计:2课时。
16位超前进位加法器
16位超前进位加法器设计目录摘要 (1)1需求分析1.1加法器的发展........................................................................ 错误!未定义书签。
1.2几种串行加法器性能比较 (3)1.2.1串行进位加法器 (3)1.2.1超前进位加法器 (3)2主要内容 (4)2.1设计原理 (6)2.2设计思路 (4)3 设计思想 (5)4 实现方法 (6)4.1顶层方案图的设计与实现 (6).4.1.1顶层方案的整体设计 (6)4.1.2元器件选择和引脚锁定 (7)4.2功能模块的设计与实现 (8)4.2.1设计描述 (8)4.2.2创建RTL代码并得到电路图....................................................... .94.3功能仿真 (11)4.4编程与下载 (12)4.5硬件仿真结果 (12)5小结 (13)参考文献 (13)附录 (14)摘要:加法运算是最重要最基本的运算,所有的其他基本算术运算乘除等都最终可以用加法运算来表示在不同的场合对加法器的要求不同,要的要求速度快有的要求面积小超前进位加法器相比于串行进位加法器是一种快速加法运算器,根据用户的要求追求速度与面积的平衡。
关键词:超前进位加法器串行进位加法器速度面积1需求分析1.1 加法器的发展加法运算是最基本的运算,所有其他基本算术运算都是以加法运算为基础。
但因为加法运算存在进位问题,使得某一位计算结果的得出和所有低于他的位相关,因此,为了减少进位传输所耗的时间提高计算速度人们设计了多种类型的加法器。
如跳跃进位加法器,进位选择加法器,超前进位加法器等他们都是利用各位之间的状态来预先产生高位进位信号从而减少进位从低位到高位的传递时间1.2 几种加法器的性能比较1.2.1串行进位加法器串行进位加法器的每一位加和值都依赖于上一位进位信号,即进位信号是串行的经过加法器的每一位。
16位全加器课程设计
16位全加器课程设计一、教学目标本节课的教学目标是让学生掌握16位全加器的原理和设计方法。
知识目标包括:理解全加器的概念,掌握全加器的真值表和逻辑表达式,了解16位全加器的组成和运作原理。
技能目标包括:能够运用逻辑代数和简单的数字电路设计方法,设计出一个16位全加器。
情感态度价值观目标包括:培养学生的创新意识和团队合作精神,提高学生对电子技术的兴趣和热情。
二、教学内容本节课的教学内容主要包括16位全加器的原理和设计方法。
首先,介绍全加器的概念和真值表,让学生理解全加器的作用和基本运作原理。
然后,讲解16位全加器的组成和运作原理,让学生了解16位全加器是如何由多个全加器级联而成的。
接下来,通过实例分析,讲解16位全加器的设计方法,让学生学会如何设计出一个16位全加器。
三、教学方法为了达到本节课的教学目标,我们将采用讲授法、讨论法和实验法等多种教学方法。
首先,通过讲授法,向学生讲解全加器的原理和设计方法。
然后,通过讨论法,让学生分组讨论全加器的运作原理和设计方法,促进学生之间的交流和合作。
最后,通过实验法,让学生动手设计并验证16位全加器,提高学生的实践能力和创新能力。
四、教学资源为了支持本节课的教学内容和教学方法,我们将准备教材、参考书、多媒体资料和实验设备等教学资源。
教材和参考书将提供全加器的原理和设计方法的相关知识,多媒体资料将通过图像和视频的形式,帮助学生更直观地理解全加器的运作原理。
实验设备将用于学生的动手实践,让学生亲自设计并验证16位全加器。
五、教学评估本节课的教学评估将采用多元化的评估方式,以全面、客观、公正地评价学生的学习成果。
评估方式包括平时表现、作业和考试等。
平时表现将根据学生在课堂上的参与度、提问和回答问题的积极性等进行评估。
作业将包括练习题和设计项目,以检验学生对16位全加器原理和设计方法的理解和应用能力。
考试将包括笔试和实验操作考试,以检验学生的理论知识和实践能力。
通过这些评估方式,我们将全面了解学生的学习成果,并根据需要进行教学调整。
EDA
实验一:16进制加计数器-------------------P3 实验二:时钟加计数器------------------P4~P7实验三:密码控制时钟—————————P8~P14实验四:两位BCD加法器———————P15~P17实验五:两位二进制乘法器———————P18~P20实验六:除法器————————————P21~P24 实验七:步进电机———————————P24~P29实验八:显示"HELLO"————————P29~P33实验九:D型触发器——————————P34~P35实验十SOPC小系统密码时钟------------P36实验一:16进制加计数器实验要求本实验主要实现十六进制计数器,输入控制有时钟CLK,复位RST, 和使能ENA。
源程序及注释LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY cnt10 ISPORT( CLK,RST, ENA: IN STD_LOGIC;OUTY: OUT STD_LOGIC_VECTOR (3 DOWNTO 0);COUT: OUT STD_LOGIC);END cnt10;ARCHITECTURE one OF cnt10 ISSIGNAL CQI: STD_LOGIC_VECTOR(3 DOWNTO 0);BEGINP_REG:PROCESS(CLK,RST, ENA)BEGINIF RST='1' THEN CQI<="0000";ELSIF CLK'EVENT AND CLK='1' THENIF ENA='1' THENCQI<=CQI+1;END IF;END IF;OUTY<=CQI;END PROCESS P_REG;COUT<=CQI(0) AND CQI(1) AND CQI(2) AND CQI(3);END one;3、SignalTab II Logic Analyzer 仿真波形实验二:时钟加计数器时钟加计数器由分频器、一位十进制加法器、一位六进制加法器、24进制加法器和译码器组成,先由分频器把50Mhz的时钟分频,再由两个十进制加法器计数毫秒位,一个六进制加法器和一个十进制加法器计数秒位,分位同秒位相同,24进制加法器计数小时位。
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位二进制加减可控计数器
**大学本科实验报告(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;。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
北京理工大学用程序输入方法设计一个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 编译报告仿真就是对设计项目进行一项全面彻底的测试,以确保设计项目的功能和时序特性符合设计要求,保证最后的硬件器件的功能与原设计相吻合。
仿真可分为功能仿真和时序仿真。
功能仿真只测试设计项目的逻辑行为,而时序仿真不但测试逻辑行为,还测试器件在最差条件下的工作情况。