基于VHDL的比较器的方案设计书

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

成绩
题目:基于FPGA的
学生姓名:周良
学生学号:1008050252
系别:电气信息工程学院
专业:电子信息科学与技术
届别:14届
任课教师:罗靖宇
电气信息工程学院制
2013年4月
基于VHDL的比较器的设计
学生:周良
指导教师:罗老师
电气信息工程学院电子信息科学与技术专业
1 引言
本设计就是基于电子设计自动化(Electronic Design Automation)技术中的甚高速集成电路硬件描述语言(Very High Speed Integrated Circuit Hardware Description Language)语言所开发的四层电梯控制程序,实验调试平台是Altera 公司的MAX +plusⅡ软件。

本程序具有VHDL语言设计里最为常用的三个模块:实体entity,对控制器的实体(输入输出)端口进行定义;结构体architecture,对控制器内部的信号端以及寄存器进行定义;进程执行单元process,对控制器的所有输入输出端口、内部信号端口以及寄存器进行功能、行为描述。

通过程序调试及运行仿真,结果表明,本程序可以完成电梯运行所在楼层显示、电梯运行方向指示、关门延时设置等。

该设计采用模块化编程,升级可实现任意多层电梯系统,具有很强的适应性和实用性。

关键词电梯控制;程序设计;EDA;VHDL;MAX +plusⅡ
2 数值比较器的设计
本次课程设计主要是根据我们学习的周荣福和曾技主编的《电子线路CAD》的后续课程,这个课程设计在保证基础,精选内容,加强感念理解,联系实际,利于我们加深对这门课的理解,另外也可以增加我们的我们的思维能力和动手能力,这也为我们以后的生活和工作都带来的提供了便利。

本次课程设计需要一些简单的电路,我们开始先介绍简单的电路。

本实验中只用到TTL和CMOS 组成的与门、非门两种门电路,CMOS组成的门。

下文简单的给出了非门和与非门的的电路图、逻辑符号等一些简单的介绍如图1、图2、图3所示。

工作原理:
当V(IN)=0V NMOS管截止,PMOS管导通,V(OUT)=VDD=5V
当V(IN)=5V PMOS截止,NMOS管导通,V(OUT)=0V
第1章摘要 (1)
1.1 课题背景及意义 (1)
1.2 电梯的发展现状和未来发展 (1)
1.3 本文的结构安排 (4)
第2章电梯控制系统的实现平台 (5)
2.1 EDA技术的简介 (5)
2.1.1 EDA的概述 (5)
2.1.2 EDA的特点 (6)
2.1.3 EDA的应用 (6)
2.2 FPGA的简介 (7)
2.2.1 CPLD与FPGA的关系 (7)
2.2.2 FPGA的工作原理 (8)
2.2.3 FPGA的基本特点 (8)
2.3 VHDL语言的简介 (9)
2.3.1 VHDL语言的发展 (9)
2.3.2 VHDL语言的特点 (10)
2.3.3 VHDL语言的基本结构 (11)
2.4 本章小结 (11)
第3章电梯控制系统的分析 (13)
3.1 电梯设计的具体目的及控制要求 (13)
3.2 电梯控制器设计方案与思路 (13)
3.2.1 总体设计方案 (13)
3.2.2 四层电梯控制器的设计思路 (14)
3.3 电梯运行流程图 (16)
3.4 本章小结 (19)
则其真值表如表1所示。

表1 真值表
真值表
A Y
0 1
1 0
Mp
图3 CMOS与非门
如图3所示,只要有一个为低电平0 V,Mn1 Mn2就总有一个截止,Mp1、Mp2就有一个导通,因此V(OUT)=5V;只有当V A ,VB同时为高电平5 V时,Mn1 Mn2都导通,Mp1、Mp2都截止,V(OUT)=0V。

综上所述,课的如表2所示电平关系表。

如果用A、B、Y分别表示V A ,VB、V(OUT),且采用正逻辑,则可得如表3所示真值表。

表2与非门电平关系表
与非门电平关系表
V A /V VB /V V(OUT)/V
0 0 5
0 5 5
5 0 5
5 5 5
表3与非门逻辑真值表
A B Y
0 0 1
0 1 1
1 0 1
1 1 0
Y
逻辑表达式AB
由此可知,图2所示电路图为与非门。

3数值比较器
3.1 四位数比较器原理
较两个4位二进制数A=A3A2A1A0、B=B3B2B1B0,比较结果用L、G、M表示,且A>B时L=1,A=B时G=1,A<B时M=1。

在比较4位数大小时,必须自最高位开始比较,而且只有在高位相等时,才需要比较低位。

(1)若A3>B3则A>B,L=1、G=0 、M=0。

(2)当A3=B3时,即G3=1时,若A2>B2时则A>B,L=1、G=M=0。

(3)当A3=B3、A2=B2即G3=G2=1时,若A1>B1则A>B,L=1、G=M=0。

(4)当A3=B3、A2=B2 、A1=B1即G3=G2=G1=1时,若A0>B0则A>B,L=1、G=M=0。

对A>B即L=1,上述四种逻辑情况是或得逻辑关系。

(5)只有当A3=B3、A2=B2 、A1=B1、A0=B0即G3=G2=G1=G0=1时,才会有A=B即G=1.显然,对于A=B即G3、G2、G1、G0时与得逻辑关系。

(6)如果A不大于B也不等于B,即L=G=0时,则A必然小于B,即M=1. 在这里我们的输入端为A=A3A2A1A0、B=B3B2B1B0,比较结果用Y1、Y2、Y3表示,且A>B时Y1=1,A=B时Y2=1,A<B时Y3=1。

3.2原理框图
当我们分析一位数值比较器的时候比较输入两位二进制A、B的大小。

我们输入信号是两个要进行比较的1位二进制数,最高位就只有一位,我们直接比较就可以得出我们想要的结果。

当我们分析四位数值比较器的时候,因为有四位二进制数,两个四位二进制数该先从四位二进制数中的最高位的数开始比较起,如果两个数值不相等则该所在位数大的那个四位数大可作出判断,不需要再进行比较;如果最高位数的数值相等则对次高位数进行比较,方法如最高位数判断方法,如此反复,直到最后一位的比较。

只有当四位二进制数各个位数上的数全相等,我们才能判断两个四位数是相
等的[2]。

由此可得到数值比较器的原理框图如图4所示:
其中,我们设数值A=A3A2A1A0,数值 B=B3B2B1B0原理框图如图4下:
是 否
是 否
是 否
是 否
是 否 是 否
是 否 是 否
输出A<B
输出A<B
输出A>B 输出A<B
A1>B1
A1<B1 A0>B0 A0<B0
输出A=B
A3<B3
A2>B2
A2<B2
输入A 和B
A3>B3 输出A>B 输出A>B
输出A<B
输出A<B
图4 四位数值比较器的原理框图
四位数值比较器的的真值表如下表4所示:
表4 四位数值比较器的真值表
由上表可经过计算得到逻辑表达式如下:
Y(A>B)= A33B + (A3⊙B3) A22B + (A3⊙B3) (A2⊙B2) A11B + (A3⊙B3) (A2⊙B2) (A1⊙B1) A00B + (A3⊙B3) (A2⊙B2) (A1⊙B1) (A0⊙B0) I(A>B) 式1 Y(A<B)= 3A B3 + (A3⊙B3) 2A B2 + (A3⊙B3) (A2⊙B2) 1A B1
比较输入
级联输入
输出 A3B3
A2B2
A1B1
A0B0 I(A>B) I(A<B)
I (A=B ) Y(A>B
) Y(A<B ) Y(A=B)
A3>B3 XX XX XX X X X 1 0 0 A3<B3 XX XX XX X X X 0 1 0 A3=B3 A2>B2 XX XX X X X 1 0 0 A3=B3 A2<B2 XX XX X X X 0 1 0 A3=B3 A2=B2 A1>B1 XX X X X 1 0 0 A3=B3 A2=B2 A1<B1
XX
X X X 0 1 0 A3=B3 A2=B2 A1=B1 A0>B
0 XX X X 1 0 0 A3=B3 A2=B2 A1=B1 A0<B
0 X X X 0 1 0 A3=B3 A2=B2 A1=B1 A0=B
0 1 0 0 1 0 0 A3=B3 A2=B2 A1=B1 A0=B
0 0 1 0 0 1 0 A3=B3
A2=B2
A1=B1 A0=B
1
1
结束
A B0 + (A3⊙B3)
+ (A3⊙B3) (A2⊙B2) (A1⊙B1) 0
(A2⊙B2) (A1⊙B1) (A0⊙B0) I(A<B) 式2
Y(A=B)= (A3⊙B3) (A2⊙B2) (A1⊙B1) (A0⊙B0) I(A=B) 式3
由此逻辑表达式可以算出当时Y(A<B)=1时A<B;当Y(A=B)=1时A=B;当Y(A>B)=1时A>B; 由此可以推断出猜想是正确的。

4 仿真部分
4.1 MAX+plus2软件简介
MAX+plusII是Altera公司提供的一个集成化开发系统,该系统界面友好,学习容易,使用简单,功能齐全,是一款流行的EDA开发平台。

它的主要功能如下:
①支持的器件:FLEX系列、MAX系列和Classic TM系列。

②支持的HDL语言:VHDL、Verilog HDL和AHDL。

③支持的输入方法:原理图输入、HDL语言文本输入和波形输入。

④综合能力:其编译器可完成项目的编译和逻辑综合,并能生成报告文件、编程文件和用于时间仿真的输出文件。

⑤仿真能力:其定时分析器能进行时序分析、功能仿真、时序仿真和波形分析。

⑥器件编程和配置:项目编译后生成的*.sof文件可直接下载到芯片。

⑦Ope ncore特征:Max+plusⅡ软件具有开放核的特点,允许设计人员添加自己认为有价值的宏函数。

⑧完全集成化:Max+plusⅡ的设计输入、处理与较验功能全部集成在统一的开发环境下,这样可以加快动态调试、缩短开发周期。

⑨丰富的设计库:Max+plusⅡ提供丰富的库单元供设计者调用,其中包括74系列的全部器件和多种特殊的逻辑功能(Macro-Function)以及新型的参数化的兆功能(Mage-Function)。

4.2 MAX+plus2 使用方法简要说明
MAX+plus2硬件平台的微机最好配置512MB内存、4,3GMB硬盘,可以在Windows XP 等操作系统支持下工作。

在进行了MAX+plus2的系统安装和系统启动后,对于所要设计和仿真的系统需要进行如下基本步骤:
(1)VHDL语言工程文件的建立和编辑;
文件的建立:新建文件(file/new/text editor file)、输入文本(text editor)、保存文件(file/save);文件的修改:打开需修改文件(file/open/*.vhd)、修改(text editor)、保存 (file/save);
(2)电路图的建立和编辑
建立文件打开图形编辑器,选择file/save as建立.gdf文件、输入所需元件及电路模块、编辑端口名称、对各电路块及输入/输出端口进行连线、在设计过程中,可以随时对已进行工作进行保存;
(3)VHDL语言程序的编译
编译的目的:生成可以进行仿真、定时分析及下载到可编程器件的相关文件。

编译的步骤:打开需编译源程序(file/open)、编译(MAX+ plus II/compiler)、为当前文件建立项目(file/project/set project to current file);
(4)VHDL语言程序的仿真
VHDL程序的仿真过程大致可以分为三个步骤:生成波形文件、仿真、定时分析。

①生成仿真波形文件:打开波形编辑器(MAX+ plus II/waveform editor)、确定波形编辑的信号持续时间(file/end time)、输入所设计电路的端口名称,并指定端口模式(时钟信号的编辑)、信号波形编辑(高低电平的编辑、Count value的设置、group value的设置)、完成所有输入信号的设定后,保存文件(*.scf);
②仿真:打开仿真器(MAX+ plus II/simulator),进行功能仿真,得到仿真结果;
③定时分析:MAX+ plus II/Timing Analyzer,提供三种定时分析模块:
(1)延迟时间分析:模拟信号从源传递到目的地,最坏情况下的延迟时间;
(2)寄存器性能分析:分析设计中用到的寄存器正常存储所需要的最小时钟周期和最大时钟频率;
(3)建立和保持时间分析:分析系统中使用的寄存器和锁存器,给出正常寄存输出时输入端必需的最小建立和保持时间。

4.3 利用MAX+ plus II进行电路设计的具体设计过程
(1) 设计输入:MAX+ plus II支持多种设计输入方式,如原理图输入、波形输入、文本输入和它们的混合输入。

(2) 设计处理:设计输入完后用:MAX+ plus II的编译器编译、查错、修改直到设计输入正确,同时将对输入文件进行简化和优化,生成一个编程文件,这是设计的核心环节。

(3) 设计检查:MAX+ plus II为设计者提供完善的检查方法、设计仿真和定时分析。

目的在于检验电路的逻辑功能是否正确。

同时测试目标器件在最坏情况下的延时,这一差错过程对于检验组合逻辑电路的竞争冒险和时序逻辑电路的时序、延时等至关重要。

(4) 器件编程:当电路设计和校验之后,MAX+ plus II的Programmer将编译器所生成的编译文件下载到具体的CPLD或者现场可编程门阵列(Field Programmable Gate Array, FPGA)器件中,即实现]6[。

目标期间的物理编程
4.4数值比较器的VHDL程序及仿真结果
VHDL程序如下:
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY COMPARE IS
GENERIC(SIZE:INTEGER:=4);
PORT
(A,B:IN STD_LOGIC_VECTOR(SIZE DOWNTO 1);
MAX:OUT STD_LOGIC_VECTOR(SIZE DOWNTO 1));
END ENTITY COMPARE;
ARCHITECTURE ART OF COMPARE IS
BEGIN
PROCESS(A,B)
BEGIN
IF(A(SIZE-1 DOWNTO 1)>B(SIZE-1 DOWNTO 1)) THEN
MAX<=A;
ELSE MAX<=B;
END IF;
END PROCESS;
END ARCHITECTURE ART;
经过长时间的努力,我们可以得到四位数值比较器的VHDL语言的仿真结果如图5、图6、图7
所示;
图5 四位数值比较器引脚图
图6 四位数值比较器逻辑图
图7 四位数值比较器仿真波形图
5 总结
5.1 设计小结
通过这次课程设计,加强了我们动手、思考和解决问题的能力。

在这个设计课程开始的时候,我感到很迷茫,不知道该怎么去做这个课程设计。

不知道该怎么去开使这个课程设计。

最后再看了很多次的课程设计计划书之后终于做了4位数值比较器这个课题。

在这个课程设计的过程中,我查阅了大量的资料,询问了同学老多问题,才把这个课题了解的比较清楚。

在这次课程设计过程中,我们了解了很多元件的功能,并且对于其在电路中的使用有了更多的认识。

平时看课本时,有时问题老是弄不懂,做完课程设计,那些问题就迎刃而解了。

而且还可以记住很多东西。

比如一些芯片的功能,平时看课本,这次看了,下次就忘了,通过动手实践让我们对各个元件映象深刻。

认识来源于实践,实践是认识的动力和最终目的,实践是检验真理的唯一标准。

所以这个期中测试之前的课程设计对我们的作用是非常大的。

同时,对给过我帮助的所有同学和各位指导老师再次表示忠心的感谢!此次课程设计,学到了很多课堂上学不到的东西,像独立的思考解决问题和怎样向他人学习,这些都使我都受益非浅。

在此,感谢罗老师的细心指导,同样谢谢其他各组同学的无私帮助。

5.2 心得体会
在这次课程设计中,首先我搜集并阅读了不少关于计的数值比较器的资料和文献;然后又复习了以前学的一些专业课知识,尤其是VLSI、VHDL以及CMOS,最终选定好设计方案,采用了MUX+plus2设计并对电路进行仿真,再利用TANNER设计并仿真电路,通过两个软件仿真结果的比较了解那个的精度更高,在仿真过程遇,了一些困难,如编译通不过要查错、输入信号设定不正确造成输出产生毛刺的问题等。

通过与同学讨
论、查资料等多方路径很多问题得以解决.通过这次课程设计我更加了解了数值比较器的原理,同时巩固了所学的VHDL,VLSI,CMOS等相关知识,让我对MUX+plus2使用更熟练吗,同时学会了用TANNER设计和仿真电路。

当然还有许多不足,希望通过以后的学习慢慢完善。

6 参考资料
[1] 汪鹏君.曾小旁. 电子与信息学报第32卷第1期(Journal of Electronics &Information Technology)
2010年1月.
[2]夏银水.裘科名. 电子与信息学报第31卷第6期(Journal of Electronics & Information Technology)
2009 年6月.
[3] 李芹.蔡理.吴刚. 浙江大学学报(理学版) 第37卷第1期(Journal of Zhejiang University(Science
Edition))2010年1月.
[4] 阎石. 数字电子技术基础(第五版)[M].北京高等教育出版社,2006.
[5] John P.Uyemura.超大规模集成电路与系统导论[M].电子工业出版社,2004.
[6] 侯伯亨,顾新. VHDL硬件描述语言与数字逻辑电路设计(修订版).[M].西安电子科技大学出版
社,2005.
[7] 廖裕评.陆瑞强. Tanner Pro集成电路设计与布局实战指导. [M].科学出版社. 2007.
7 附录
附带几张实验过程中一下步骤的图片。

相关文档
最新文档