EDA.docx
- 文档编号:11336784
- 上传时间:2023-02-28
- 格式:DOCX
- 页数:12
- 大小:196.14KB
EDA.docx
《EDA.docx》由会员分享,可在线阅读,更多相关《EDA.docx(12页珍藏版)》请在冰豆网上搜索。
EDA
课程设计报告
(理工类)
课程名称:
EDA技术专业班级:
电子技术与科学092
学生学号:
学生姓名:
所属院部:
物电学院指导教师:
2011——2012学年第2学期
设计项目名称:
16线4线优先编码器,4线16线译码器_____实验地点:
力行楼203
同组学生姓名:
设计成绩:
批改教师:
批改时间:
目录
一、设计目的和要求2
1.1课程设计目的2
1.2课程设计的基本要求2
二、实验仪器和设备2
三、设计过程3
3.1设计内容和要求3
3.2设计方法6
3.3设计思路6
3.4设计难点7
四、设计结果与分析7
4.1思路问题以及测试结果失败分析7
4.2程序简要说明8
五、设计总结10
参考文献11
一、设计目的和要求
1.1课程设计目的
1.复习编码器和译码器的原理,掌握编码器,译码器的设计实现方法,
2.设计实现数字系统设计中常用的16线-4线优先编码器和4线-16线。
3.逐步学会熟练运用MAX+PLUSⅡ或QuartusII软件,熟悉EDA的VHDL程序设计方法、学习掌握组合逻辑电路的VHDL描述方法,进一步掌握应用EDA常用工具进行组合逻辑电路的设计、分析、综合、仿真等的技巧。
1.2课程设计的基本要求
能用VHDL语言设计4-16译码器,16-4优先编码器设计电路,实现16位转4位的优先编码器,是4-16译码器的逆程序,要求0的优先级最高,15的优先级最低,编码输出为原码。
二、实验仪器和设备
PC机、MAX+PLUSII软件开发系统、CPLD/FPGA实验及下载装置
Max+plusII(或写成Maxplus2,或MP2)是Altera公司推出的的第三代PLD开发系统(Altera第四代PLD开发系统被称为:
Quartus,主要用于设计6万-100万门的大规模CPLD/FPGA).使用MAX+PLUSII的设计者不需精通器件内部的复杂结构。
设计者可以用自己熟悉的设计工具(如原理图输入或硬件描述语言)建立设计,MAX+PLUSII把这些设计转自动换成最终所需的格式。
其设计速度非常快。
对于一般几千门的电路设计,使用MAX+PLUSII,从设计输入到器件编程完毕,用户拿到设计好的逻辑电路,大约只需几小时。
设计处理一般在数分钟内内完成。
特别是在原理图输入等方面,Maxplus2被公认为是最易使用,人机界面最友善的PLD开发软件,特别适合初学者使用。
Max+plusII设计流程归纳为1.设计输入 2.设计编译 3.设计仿真 4.下载。
CPLD/FPGA简介:
CPLD(ComplexProgrammableLogicDevice)——复杂可编程逻辑器件
FPGA(FieldProgramableGateArray)——现场可编程门阵列
两者功能基本相同,只是实现原理略有不同,故有时可以统称为复杂可编程逻辑器件或CPLD/FPGA。
CPLD/FPGA内部具有大量组成数字电路的最小单元——门电路,而这些门电路并没有固定怎样连接,门电路的连接可通过编程的方法加以设计,同时输入/输出脚的连接可自己设置,故这种电路给我们带来了极大的方便。
三、设计过程
3.1设计内容和要求
1.编码器
画逻辑图并编写VHDL程序进行逻辑综合和优化,进行功能仿真,实现软件到硬件的设计,时序仿真以及下载编程等。
图116-4优先编码器线路图
将二片8-3线优先编码器级联起来,构成16-4线优先编码器,将A0~A15十个低电平输入信号编为输出Q3~Q0=1111~0000十六个对应的四位二进制反码其中A15的优先级最高,A0最低,如图所示
由图可知,A15~A8八个优先级高的输入端接到片1上,将A7~A0八个优先级低的输入端接到片2上。
当A15~A8中任一端为低电平时,例如A11=0.则片1的GS=0,Q3=0,Y2Y1Y0=100,同时片1的EO=1,将片2封锁,使它的输出Y2Y1Y0=111,于是在最后的输出端得到Q3Q2Q1Q0=0100.
当A15~A8全部为高电平时,片1的EO=0.,故片2的ST=0,处于编码工作状态,对A7~A0输入的低电平信号中优先权最高的一个进行编码。
对十进制数的编码参考上述分析。
2.译码器
图24-16译码器线路图
如图所示,第一片74LS138工作,而第二片74LS138禁止,将0000-0111这8个代码译成8个低电平信号。
而图中表明,第二片74LS138工作,第1片74LS138禁止,将1000-1111这8个代码译成8个低电平信号,这样就用二个3线-8译码器扩展成一个4线-16线译码器了。
图34-16译码器真值表
图44-16译码器接口图
将a,b,c,d设置成四个输入口,用s表示a,b,c,d表示的四位二进制数。
如a=0,b=0,c=0,d=0,则s=0000.再根据4-16译码器的真值表,使得在输入0000时,y=111111*********0;当输入0001时,y=111111*********1;依次类推。
3.2设计方法
首先根据前文所述,对照真值表的列出的不同输入逻辑状态,分情况依次输出于输入的对应关系,而后编译综合,由开发系统自行实现电路功能。
设计16-4线编码器,可用二个3-8编码器进行设计,从而实现基本功能为了设计一4-16线译码器,可将两个3-8译码器(74LS138、74HC138)级联而得。
设计时,可分为三各部分:
电平输入控制部分、译码器级联部分、译码显示部分。
出于方便取材、节约简单的因素,电平控制部分采用开关控制高低电平,用发光二极管显示;译码部分用两块74LS138(74HC138)级联;译码显示部分用16个编号(0---15)的发光二极管显示,对应编号的灯亮,则为相应编号所对应的信号输出。
3.3设计思路
图54线-16线优先编码器波形图
用两块3线-8线译码器(74XX138)集成译码器级联部分。
此方案用元件较少,连线相对简单,且元器件也便于购买。
从连接的难以程度好和经济等方面综合考虑,方案二为最佳方案,可以实施。
图616线4线译码器波形图
3.4设计难点
如何用二个8-3线编码器和3-8线译码器进行有效的组合,并且能够实现16-4线编码器和4-16线译码器功能是本实验的难点,对于本实验有着很大的影响。
代码的编写也是对实验有一定的影响的。
四、设计结果与分析
4.1思路问题以及测试结果失败分析
在本次实验所遇到的问题:
1在进行仿真时波形出现错误:
在进行仿真时对其中的点进行设置,对图进行有效的赋值可以有效地解决这个问题。
2不知道代码的具体内容:
通过网上的查看得到了解决,
4.2程序简要说明
16线4线优先编码器VHDL程序代码:
LIBRARYIEEE;--打开IEEE库
USEIEEE.STD_LOGIC_1164.ALL;--打开IEEE库中的STD_LOGIC_1164程序包的所有内容
ENTITYcoderIS
PORT(din:
INSTD_LOGIC_VECTOR(0TO15);--定义din端口为输入
output:
OUTSTD_LOGIC_VECTOR(0TO3));--定义output端口为输出
ENDcoder;--实体coder的说明
ARCHITECTUREbehavOFcoderIS--实体coder的结构体behav的说明
BEGIN
PROCESS(din)
BEGIN
IF(din(15)='0')THENoutput<="0000";
ELSIF(din(14)='0')THENoutput<="1000";
ELSIF(din(13)='0')THENoutput<="0100";
ELSIF(din(12)='0')THENoutput<="1100";
ELSIF(din(11)='0')THENoutput<="0010";
ELSIF(din(10)='0')THENoutput<="1010";
ELSIF(din(9)='0')THENoutput<="0110";
ELSIF(din(8)='0')THENoutput<="1110";
ELSIF(din(7)='0')THENoutput<="0001";
ELSIF(din(6)='0')THENoutput<="1001";
ELSIF(din(5)='0')THENoutput<="0101";
ELSIF(din(4)='0') THENoutput<="1101";
ELSIF(din(3)='0') THENoutput<="0011";
ELSIF(din
(2)='0')THENoutput<="1011";
ELSIF(din
(1)='0')THENoutput<="0111";
ELSEoutput<="1111";
ENDIF;
ENDPROCESS;
ENDbehav;
4线16线译码器VHDL程序代码:
libraryieee;--打开IEEE库
useieee.std_logic_1164.all;--打开IEEE库中的STD_LOGIC_1164程序包的所有内容
entityencoderis
port(input:
instd_logic_vector(3downto0);--定义input端口为输入
y:
outstd_logic_vector(15downto0));--定义out端口为输入
endencoder;--实体encoder的说明
architectureexampleofencoderis--实体encoder的结构体example的说明
begin
process(input)
begin
ifinput="0000"theny<="1111111111111110";
elsifinput="0001"theny<="1111111111111101";
elsifinput="0010"theny<="1111111111111011";
elsifinput="0011"theny<="1111111111110111";
elsifinput="0100"theny<="1111111111101111";
elsifinput="0101"theny<="1111111111011111";
elsifinput="0110"theny<="1111111110111111";
elsifinput="0111"theny<="1111111101111111";
elsifinput="1000"theny<="1111111011111111";
elsifinput="1001"theny<="1111110111111111";
elsifinput="1010"theny<="1111101111111111";
elsifinput="1011"theny<="1111011111111111";
elsifinput="1100"theny<="1110111111111111";
elsifinput="1101"theny<="1101111111111111";
elsifinput="1110"theny<="1011111111111111";
elsifinput="1111"theny<="0111111111111111";
endif;
endprocess;
endexample;
五、设计总结
通过这段时间的EDA课程设计,我更加熟练的掌握了EDA开发的基本流程,熟练的使用MAX+PLUSII软件进行编程,虽然在设计初期也遇到了不少麻烦,特别是在考虑设计一个使能端时要进行如何设计以及放在哪边伤透了我们的脑经,我学到了懂得了不少新知识,还进一步复习了以前的数电、模电、PROTEL、MUTISIM等课本知识,更难得可贵的时学会了怎样在INTERNET和图书馆查阅资料。
在刚布置课题设计任务的时候,对有关设计的流程及其要求知道得很少,经过老师的讲解及查阅相关资料,逐步对课程设计有了一些认识并开始本次设计。
设计中,为了使设计简单明了,尽量采用一些连接简单、器件较少的电路。
在选购元器件时,由于没由74LS138,所以采用了74HC138。
在输入电平控制部分,用发光二极管来显示是否接通,清晰明了。
而在译码显示部分,本应该用数码显示管来显示输入数的十进制数,但是由于连接复杂,设计成本高等因素,没有采用。
这里用16个编号的发光二极管来显示是否译码输出,不仅连接简单,而且还便于取材,经济成本低,从而予以采用。
通过完成本次课程设计,我了解学习了新知识,温习了学过的知识,使我受益匪浅,在以后的学习、生活、工作中将会起到很大的作用。
参考文献
[1]延明,张亦化.数字电路EDA技术入门.北京:
邮电大学出版社,2006
[2]徐惠民,安德宁.数字逻辑设计与VHDL描述.北京:
机械工程出版社,2002
[3]潘松,王国栋.VHDL实用教程.成都:
电子科技大学出版社,2001
[4]刘洪江,孙俊逸.EDA技术.武汉:
华中科技大学出版社,2009
[5]谭会生,张昌凡.EDA技术及引用.西安:
西安电子科技大学出版社,2004
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- EDA