基本门电路和数值比较器的设计.docx
- 文档编号:26728399
- 上传时间:2023-06-22
- 格式:DOCX
- 页数:15
- 大小:103.55KB
基本门电路和数值比较器的设计.docx
《基本门电路和数值比较器的设计.docx》由会员分享,可在线阅读,更多相关《基本门电路和数值比较器的设计.docx(15页珍藏版)》请在冰豆网上搜索。
基本门电路和数值比较器的设计
苏州大学
《电子信息科学与技术》课程设计报告
智力竞赛抢答答器
种子和大树相遇
学院————————专业————————
班级XXXXXXX 学号XXXXXXXX
学生姓名种子和大树相遇指导教师XXX
课程成绩完成日期20xx年x月xx日
课程设计任务书
XXX学院XX专业
课程名称
XX
时间
XX
学生姓名
XXX
指导老师
XXX
题目
基本门电路和数值比较器的设计
主要内容:
利用VHDL设计基本门电路和数值比较电路模块,并使用EDA工具对各模块进行仿真验证。
基本门电路模块中包含与门、或门、异或门等6个基本电路。
数值比较器模块用来实现两个数值比较,结果用特定的二进制编码来表示。
要求:
(1)通过设计计算机各组成部件的器件、设计指令系统及对应的模型机、做复杂模型机的实验,CPU系统与存储器扩展设计、接口技术应用设计等课题,掌握计算机组成和接口技术的基本分析方法和设计方法,加深和巩固对理论教学和实验教学内容的掌握,进一步建立计算机系统整体概念,初步掌握微机硬件开发方法,为以后进行实际的计算机软、硬件应用开发打下良好的基础。
(2)熟练操作设计所用的软硬件系统:
TDN-CM++实验系统或EDA软件。
(3)按要求编写课程设计报告,正确绘制程序流程图、实验接线图等,正确阐述设计原理、方法和实验结果。
(4)通过课程设计培养学生严谨的科学态度,认真地工作作风和团队协作精神。
(5)在老师的指导下,要求每个学生独立完成课程设计报告的全部内容。
应当提交的文件:
(1)课程设计报告。
(2)课程设计附件(源程序、各类图纸、实验数据、运行截图等)。
课程设计成绩评定
学院XXXXXXXXXXX专业XX
班级XX 学号XX
学生姓名XXX 指导教师XXX
课程成绩完成日期
指导教师对学生在课程设计中的评价
评分项目
优
良
中
及格
不及格
课程设计中的创造性成果
学生掌握课程内容的程度
课程设计完成情况
课程设计动手能力
文字表达
学习态度
规范要求
课程设计论文的质量
指导教师对课程设计的评定意见
综合成绩指导教师签字年月日
基本门电路
和数值比较器的设计
学生姓名:
XXX指导老师:
XXX
摘要系统采用EDA技术设计基本门电路和数值比较器中的两个部分,基本门电路模块中包含与门、或门、异或门等6个基本电路。
数值比较器模块用来实现两个数值比较,结果用特定的二进制编码来表示。
系统采用硬件描述语言VHDL把电路按模块化方式进行设计,然后进行编程、时序仿真等。
各个模块的结构简单,使用方便,具有一定的应用价值。
关键字门电路;EDA;VHDL;数值比较
1引言
20世纪60年代初,美国德克萨斯仪器公司TI(TexasInstruments)将各种基本逻辑电路以及连线制作在一片体积很小的硅片上,经过封装后提供给用户使用,这就是集成电路。
从先前的采用半导体技术实现的计算机到现在广泛应用的采用高集成度芯片实现的计算机。
基本门电路和数值比较器作为计算机原理中的一个元件,因而成为深入研究和了解基本逻辑电路的基石。
本设计主要介绍的是一个基于超高速硬件描述语言VHDL对基本门电路和数值比较器电路进行编程实现。
1.1设计的目的
本次设计的目的就是在掌握EDA实验开发系统的初步使用基础上,深入了解计算机组成的一些基本原理。
并以计算机组成原理为指导,掌握计算机基本门电路和数值比较器电路的设计方法和思想。
通过学习的VHDL语言结合所学的计算机组成原理知识,理论联系实际,提高IC设计能力,提高分析、解决计算机技术实际问题的独立工作能力。
1.2设计的基本内容
利用VHDL设计基本门电路和数值比较电路模块,并使用EDA工具对各模块进行仿真验证。
基本门电路模块中包含与门、或门、异或门等6个基本电路。
数值比较器模块用来实现两个数值比较,结果用特定的二进制编码来表示。
2EDA、VHDL简介
2.1EDA技术
EDA是电子设计自动化(ElectronicDesignAutomation)的缩写,在20世纪90年代初从计算机辅助设计(CAD)、计算机辅助制造(CAM)、计算机辅助测试(CAT)和计算机辅助工程(CAE)的概念发展而来的。
EDA技术就是以计算机为工具,设计者在EDA软件平台上,用硬件描述语言HDL完成设计文件,然后由计算机自动地完成逻辑编译、化简、分割、综合、优化、布局、布线和仿真,直至对于特定目标芯片的适配编译、逻辑映射和编程下载等工作。
EDA技术的出现,极大地提高了电路设计的效率和可*性,减轻了设计者的劳动强度。
2.2硬件描述语言——VHDL
★VHDL的简介
VHDL语言是一种用于电路设计的高级语言。
它在80年代的后期出现。
最初是由美国国防部开发出来供美军用来提高设计的可靠性和缩减开发周期的一种使用范围较小的设计语言。
但是,由于它在一定程度上满足了当时的设计需求,于是他在1987年成为AI/IEEE的标准(IEEESTD1076-1987)。
1993年更进一步修订,变得更加完备,成为AI/IEEE的AI/IEEESTD1076-1993标准。
目前,大多数的CAD厂商出品的EDA软件都兼容了这种标准。
VHDL的英文全写是:
VHSIC(VeryHigheedIntegratedCircuit)HardwareDescriptiongLanguage.翻译成中文就是超高速集成电路硬件描述语言。
因此它的应用主要是应用在数字电路的设计中。
目前,它在中国的应用多数是用在FPGA/CPLD/EPLD的设计中。
当然在一些实力较为雄厚的单位,它也被用来设计ASIC。
★VHDL语言的特点
应用VHDL进行系统设计,有以下几方面的特点:
(一)功能强大。
VHDL具有功能强大的语言结构。
它可以用明确的代码描述复杂的控制逻辑设计。
并且具有多层次的设计描述功能,支持设计库和可重复使用的元件生成。
VHDL是一种设计、仿真和综合的标准硬件描述语言。
(二)可移植性。
VHDL语言是一个标准语言,其设计描述可以为不同的EDA工具支持。
它可以从一个仿真工具移植到另一个仿真工具,从一个综合工具移植到另一个综合工具,从一个工作平台移植到另一个工作平台。
此外,通过更换库再重新综合很容易移植为ASIC设计。
(三)独立性。
VHDL的硬件描述与具体的工艺技术和硬件结构无关。
设计者可以不懂硬件的结构,也不必管最终设计实现的目标器件是什么,而进行独立的设计。
程序设计的硬件目标器件有广阔的选择范围,可以是各系列的CPLD、FPGA及各种门阵列器件。
(四)可操作性。
由于VHDL具有类属描述语句和子程序调用等功能,对于已完成的设计,在不改变源程序的条件下,只需改变端口类属参量或函数,就能轻易地改变设计的规模和结构。
(五)灵活性。
VHDL最初是作为一种仿真标准格式出现的,有着丰富的仿真语句和库函数。
使其在任何大系统的设计中,随时可对设计进行仿真模拟。
所以,即使在原离门级的高层次(即使设计尚未完成时),设计者就能够对整个工程设计的结构和功能的可行性进行查验,并做出决策。
★VHDL的设计流程
用高级语言设计电路的流程:
在用高级语言来设计电路时,主要的过程是这样的:
(1)使用文本编辑器输入设计源文件(你可以使用任何一种文本编辑器。
但是,为了提高输入的效率,你可以用某些专用的编辑器,如:
HdlEditor,TuborWriter或者一些EDA工具软件集成的HDL编辑器)。
(2)使用编译工具编译源文件。
HDL的编译器有很多,ACTIVE公司,MODELSIM公司,SYNPLICITY公司,SYNOPSYS公司,VERIBEST公司等都有自己的编译器。
(3)功能仿真。
对于某些人而言,仿真这一步似乎是可有可无的。
但是对于一个可靠的设计而言,任何设计最好都进行仿真,以保证设计的可靠性。
另外,对于作为一个独立的设计项目而言,仿真文件的提供足可以证明你设计的完整性。
(4)综合。
综合的目的是在于将设计的源文件由语言转换为实际的电路。
这一部分的最终目的是生成门电路级的网表(Netlist)。
(5)布局、布线。
这一步的目的是生成用于编程PROGRAMMING的编程文件。
在这一步,将用到第(4)步生成的网表并根据CPLD/FPG厂商的器件容量,结构等进行布局、布线。
这就好像在设计PCB时的布局布线一样。
先将各个设计中的门根据网表的内容和器件的结构放在器件的特定部位。
然后,在根据网表中提供的各门的连接,把各个门的输入输出连接起来。
最后,生成一个供编程的文件。
这一步同时还会加一些时序信息到你的设计项目中去,以便与你做后仿真。
(6)后仿真。
这一步主要是为了确定你的设计在经过布局布线之后,是不是还满足你的设计要求。
如果设计的电路的时延满足要求的话,则就编程了!
3设计规划过程
3.1基本门电路工作原理
使用VHDL中的关系运算符实现各种门电路。
门电路框图如图3.1所示。
图3.1基本门电路框图
3.2数值比较器的工作原理
利用IF_THEN_ELSE表达的VHDL顺序语句的方式,描述了一个数值比较器的电路行为,真值表如图3.2所示,实验模块如图3.3所示。
结构体中的IF语句类似于软件语言,比较符合人的思维,但写像IF这样的条件语句一定要注意条件的“完整性”与“不完整性”,“完整”指列出了条件的所有可能及其对应的操作。
完整的条件语句只能构成组合逻辑电路,不完整的条件语句将引进寄存器,从而构成时序电路。
这两者无所谓对错,只是要根据自己的目的谨慎选择。
随意写出的IF或其他条件语句往往使综合结果与自己的本意相差甚远。
输入
输出
AB
Y1Y2Y3
A>B
100
A=B
010
A
000
图3.2输入输出关系
图3.3比较器的框图
3.3课程设计中各个模块的设计
课程设计中各个模块由VHDL实现后,利用EDA工具对各模块进行了时序仿真(TimingSimulation),其目的是通过时序可以更清楚的了解程序的工作过程。
1.基本门电路模块
基本门电路可由VHDL程序来实现,下面是其中的一段VHDL代码:
process(clk,key)
BEGIN
if(key="111111")thencnt0<=0;
elsif(clk'eventandclk='1')then
ifcnt0>1999999thencnt0<=0;temp<=key;
elsecnt0<=cnt0+1;
endif;
endif;
casetempis
when"111110"=>c<=aandb;
when"111101"=>c<=aorb;
when"111011"=>c<=nota;
when"110111"=>c<=not(aandb);
when"101111"=>c<=anorb;--或非
when"011111"=>c<=axorb;--异或
whenothers=>c<=aandb;
endcase;
endprocess;
基本门电路由VHDL程序实现后,其仿真图如图3.4所示。
图3.4基本门电路仿真图
对其仿真图进行仿真分析:
temp为系统内部的控制信号,clock为同步时钟脉冲信号,a,b是输入信号,c是输出信号。
Temp=11110时,输出为与门,例如a=0,b=0时,输出结果为c=0;当temp=111101,输出为或门,如a=1,b=1时,c=1;当temp=111011时,输出为非门;当temp=110111时,输出为与非门;当temp=101111时,输出为或非门;当temp=011111时,输出为异或门。
基本门电路的引脚分配图如3.5所示:
图3.5基本门电路的引脚分配图
2.数值比较器模块
数值比较器电路可由VHDL程序来实现,下面是其中的一段VHDL代码:
BEGIN
PROCESS(a,b)
BEGIN
IFa>bTHEN--a>b
y1<='1';
y2<='0';
y3<='0';
ELSIFa=bTHEN--a=b
y1<='0';
y2<='1';
y3<='0';
ELSIFa y1<='0'; y2<='0'; y3<='1'; ENDIF; ENDPROCESS; 数值比较器电路由VHDL程序实现后,其仿真图如图3.6所示。 图3.6数值比较电路仿真图 对其仿真图进行仿真分析: a,b为输入信号,y1,y2,y3为输出信号。 当输入信号a=1,b=0时,输出为a>b,y1=1,y2=y3=0;当输入信号a=0,b=1时,输出为a 数值比较器的引脚分配图如图3.7所示: 图3.7数值比较器的引脚分配图 结束语 通过两星期的紧张工作,最后完成了我的设计任务——基于VHDL基本门电路和数值比较器电路的设计。 通过本次课程设计的学习,我深深的体会到设计课的重要性和目的性所在。 本次设计课不仅仅培养了我们实际操作能力,也培养了我们灵活运用课本知识,理论联系实际,独立自主的进行设计的能力。 它不仅仅是一个学习新知识新方法的好机会,同时也是对我所学知识的一次综合的检验和复习,使我明白了自己的缺陷所在,从而查漏补缺。 希望学校以后多安排一些类似的实践环节,让同学们学以致用。 在设计中要求我要有耐心和毅力,还要细心,稍有不慎,一个小小的错误就会导致结果的不正确,而对错误的检查要求我要有足够的耐心,通过这次设计和设计中遇到的问题,也积累了一定的经验,对以后从事集成电路设计工作会有一定的帮助。 在应用VHDL的过程中让我真正领会到了其并行运行与其他软件(C语言)顺序执行的差别及其在电路设计上的优越性。 用VHDL硬件描述语言的形式来进行数字系统的设计方便灵活,利用EDA软件进行编译优化仿真极大地减少了电路设计时间和可能发生的错误,降低了开发成本,这种设计方法必将在未来的数字系统设计中发挥越来越重要的作用。 致谢 本设计是在XXX老师的精心指导和严格要求下完成的,从课题选择到具体设计和调试,都得到肖老师的悉心指导,无不凝聚着肖老师的心血和汗水,她多次为我指点迷津,帮助我开拓设计思路,精心点拨、热忱鼓励。 她渊博的知识、开阔的视野和敏锐的思维给了我深深的启迪。 通过这次课程设计我从肖老师那学到不少有用的知识,也积累了一定的电路设计的经验。 参考文献 [1]潘松.VHDL实用教程[M].成都: 电子科技大学出版社,2000 [2]侯伯亨,顾新.VHDL硬件描述语言及数字逻辑电路设计.西安: 西安电子科技大 出版社,2003 [3: 机械工业出版社,2005 [4机械工业出版社,2006 附录 基本门电路的程序代码: libraryIEEE; entitylogicis Port( a,b,clk: instd_logic; key: instd_logic_vector(5downto0); c: outstd_logic ); endlogic; architectureBehavioraloflogicis signaltemp: std_logic_vector(5downto0); signalcnt0: integerrange0to2000000; begin process(clk,key) BEGIN if(key="111111")thencnt0<=0; elsif(clk'eventandclk='1')then ifcnt0>1999999thencnt0<=0;temp<=key; elsecnt0<=cnt0+1; endif; endif; casetempis when"111110"=>c<=aandb; when"111101"=>c<=aorb; when"111011"=>c<=nota; when"110111"=>c<=not(aandb); when"101111"=>c<=anorb;--或非 when"011111"=>c<=axorb;--异或 whenothers=>c<=aandb; endcase; endprocess; endBehavioral; 数值比较器的程序代码: LIBRARYIEEE; ENTITYcc44IS PORT(a,b: INSTD_LOGIC_VECTOR(3DOWNTO0);--输入 y1,y2,y3: OUTSTD_LOGIC);--输出 ENDcc44; ARCHITECTURERTLOFcc44IS BEGIN PROCESS(a,b) BEGIN IFa>bTHEN--a>b y1<='1'; y2<='0'; y3<='0'; ELSIFa=bTHEN--a=b y1<='0'; y2<='1'; y3<='0'; ELSIFa y1<='0'; y2<='0'; y3<='1'; ENDIF; ENDPROCESS; ENDRTL;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基本 门电路 数值 比较 设计