第2-5讲 VHDL语言结合逻辑电路设计_第1页
第2-5讲 VHDL语言结合逻辑电路设计_第2页
第2-5讲 VHDL语言结合逻辑电路设计_第3页
第2-5讲 VHDL语言结合逻辑电路设计_第4页
第2-5讲 VHDL语言结合逻辑电路设计_第5页
已阅读5页,还剩60页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、EDA技术实用教程,第2-5讲 VHDL语言语言组合逻辑电路设计,一、逻辑门电路设计,例1:用数据流描述方式设计一个4输入“与或非”逻辑门,LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY yhf4 IS PORT(A,B,C,D: IN STD_LOGIC; Y: OUT STD_LOGIC); END yhf4; ARCHITECTURE data_flow OF yhf4 IS BEGIN Y=NOT(A AND B) OR (C AND D); END data_flow;,请画出电路图,一、逻辑门电路设计,组合逻辑电路,一任务1:四舍

2、五入判别电路 1任务分析 组合电路:输出仅由输入决定,与电路当前状态无关;电路结构中无反馈环路(无记忆),传统组合逻辑电路的设计方法:,EDA技术实用教程,EDA技术实用教程,以四舍五入判别电路为例:,电路基本功能:其输入为8421BCD码,要求当输入大于或等于时,判别电路输出为,反之为。,四舍五入判别电路真值表,由真值表化简得到逻辑关系: Y = D + AC + BC,EDA技术实用教程,EDA技术实用教程,2任务实施 完成四舍五入判别电路的文本编辑: ENTITY zuhe IS PORT ( a,b,c,d: IN BIT; y : OUT BIT ); END ENTITY; ARC

3、HITECTURE behav OF zuhe IS BEGIN Y=D OR (A AND C) OR (B AND C); END ARCHITECTURE;,EDA技术实用教程,仿真测试,EDA技术实用教程,在开发系统上进行硬件测试。 主芯片MAX3000A/EPM3064ALC44-4; 4个拨码开关; 1个LED。,EDA技术实用教程,二任务2:举重裁判表决电路 1任务分析 设举重比赛有3个裁判,一个主裁判和两个副裁判。 杠铃完全举上的裁决由每一个裁判按一下自己面前的 按钮来确定。只有当两个或两个以上裁判判明成功, 并且其中有一个为主裁判时,表明成功的灯才亮。,EDA技术实用教程,设

4、主裁判为变量A,副裁判分别为B和C;表示成功与否的灯为Y,根据逻辑要求列出真值表。 举重裁判表决电路真值表,由真值表化简得到逻辑关系: Y =AB +AC,EDA技术实用教程,2任务实施 完成举重裁判表决电路的文本编辑 :,ENTITY biaojue IS PORT ( a,b,c: IN BIT; y : OUT BIT ); END ENTITY; ARCHITECTURE behav OF biaojue IS BEGIN Y y y y y y y y y y = ZZZ; END CASE; END PROCESS; END ARCHITECTURE ONE ;,EDA技术实用教程

5、,仿真测试,EDA技术实用教程,在开发系统上进行硬件测试。 主芯片MAX3000A/EPM3064ALC44-4;8个开关;3个LED灯。,EDA技术实用教程,二任务2:8_3 优先编码器 1任务分析 优先编码器允许多个输入信号同时有效。设计时所有输入信号已按优先顺序排队。其中优先级别高的信号排斥级别低的,即具有单方面排斥的特性。 以8_3 优先编码器为例: 设I7的优先级别最高,I6次之,依此类推,I0最低。,8_3 优先编码器真值表,EDA技术实用教程,EDA技术实用教程,2任务实施 使用VHDL顺序语句,完成8_3 优先编码器的文本编辑:,LIBRARY IEEE; USE IEEE.S

6、TD_LOGIC_1164.ALL; ENTITY bianma IS PORT ( i : IN STD_LOGIC_VECTOR( 7 DOWNTO 0 ) ; y : OUT STD_LOGIC_VECTOR( 2 DOWNTO 0 ) ); END ENTITY bianma; ARCHITECTURE ONE OF bianma IS BEGIN,EDA技术实用教程,PROCESS (i) BEGIN IF i(7)=1 THEN y=111; ELSIF i(6)=1 THEN y=110; ELSIF i(5)=1 THEN y=101; ELSIF i(4)=1 THEN y=

7、100; ELSIF i(3)=1 THEN y=011; ELSIF i(2)=1 THEN y=010; ELSIF i(1)=1 THEN y=001; ELSIF i(0)=1 THEN y=000; END IF; END PROCESS; END ARCHITECTURE ONE ;,该描述具有优先级,EDA技术实用教程,仿真测试:,EDA技术实用教程,在开发系统上进行硬件测试 : 主芯片MAX3000A/EPM3064ALC44-4;8个开关;3个LED灯。,一任务1:普通8_3编码器 1任务分析 将输入的二值代码转换成对应的高、低电平信号,称为译码。它是编码的反操作。 实现译码

8、操作的电路称为译码器。译码器分二进制译码器、十进制译码器及字符显示译码器,各种译码器的工作原理类似,设计方法也相同。 设二进制译码器的输入端为n个,则输出端为2n个,且对应于输入代码的每一种状态,2n个输出中只有一个为1(或为0),其余全为0(或为1)。,译码器,译码器设计,3_8译码器真值表:其中输入3位二进制代码,输出8个互斥的信号,译码器设计,三译码器设计,设计38线译码器,LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY ymq83 IS PORT(A,B,C: IN STD_LOGIC; Y:OUT STD_LOGIC_VECTOR(

9、7 DOWNTO 0); END ymq83;,请注意 数据类型的声明,ARCHITECTURE behavior OF ymq83 IS SIGNAL INDATA:STD_LOGIC_VECTOR(2 DOWNTO 0); BEGIN INDATA Y Y Y Y Y Y Y Y Y=“XXXXXXXX”; END CASE; END PROCESS; END behavior;,该描述 不具有优先级,译码器设计,仿真测试,译码器仿真,二任务2:七段数码显示译码器 1.任务分析 用来驱动各种显示器件,从而将用二进制代码表示的数字、文字、符号翻译成人们习惯的形式直观地显示出来的电路,称为显示

10、译码器。 这种显示器可用多种发光器件构成。例如半导体发光二极管、液晶等。,显示译码器,以发光二极管的七段数码显示译码器为例进行说明。,显示译码器,七段数码显示译码器真值表,显示译码器,2任务实施,使用VHDL顺序语句,完成七段数码显示译码器的文本编辑: library ieee; use ieee.std_logic_1164.all; entity yima is port(d0,d1,d2,d3:in std_logic;a,b,c,d,e,f,g:out std_logic); end yima; architecture behav of yima is signal m: std_l

11、ogic_vector(3 downto 0); signal seg7:std_logic_vector(6 downto 0); begin m=d3,显示译码器,WITH m SELECT seg7=0111111 when 0000 , 0000110 when 0001 , 1011011 when 0010 , 1001111 when 0011 , 1100110 when 0100 , 1101101 when 0101 , 1111101 when 0110 , 0000111 when 0111 , 1111111 when 1000 , 1100111 when 1001

12、 , 1110111 when 1010 ,显示译码器,1111100 when 1011 , 0111001 when 1100 , 1011110 when 1101 , 1111001 when 1110 , 1110001 when 1111 , 0000000 when others; g=seg7(6); f=seg7(5); e=seg7(4); d=seg7(3); c=seg7(2); b=seg7(1); a=seg7(0); end behav;,显示译码器,仿真测试,显示译码器,主芯片MAX3000A/EPM3064ALC44-4;4个开关;1个共阴七段数码管。,在开发

13、系统上进行硬件测试 :,显示译码器,加法器,一任务1:四位加法器 1任务分析 能对两个1位二进制数进行相加而求得和及进位的逻辑电路称为半加器。 能对两个1位二进制数进行相加并考虑低位来的进位,即相当于3个1位二进制数的相加,求得和及进位的逻辑电路称为全加器。 实现多位二进制数相加的电路称为加法器。按照进位方式的不同,加法器分为串行进位加法器和超前进位加法器两种。串行进位加法器电路简单、但速度较慢,超前进位加法器速度较快、但电路复杂。 加法器除用来实现两个二进制数相加外,还可用来设计代码转换电路、二进制减法器和十进制加法器等。,加法器,四位加法器真值表,例1:设计4位二进制加法器,数据类型必须一

14、致才能赋值,LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_ARITH.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY jfq4 IS PORT( a,b: IN STD_LOGIC_VECOR(3 DOWNTO 0); sum: OUT STD_LOGIC_VECTOR(4 DOWNTO 0); END jfq4; ARCHITECTURE behavior OF jfq4 IS BEGIN PROCESS(a,b) BEGIN sum=(0,加法器,2任务实施 完成四位加法

15、器的文本编辑: LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY plus IS PORT ( a,b: IN STD_LOGIC_VECTOR(3 DOWNTO 0); cin: IN STD_LOGIC; s: OUT STD_LOGIC_VECTOR(3 DOWNTO 0); cout: OUT STD_LOGIC); END ENTITY plus;,加法器,ARCHITECTURE behav OF plus IS SIGNAL number :STD_LOGIC_VE

16、CTOR(4 DOWNTO 0); BEGIN number = (0,加法器,加法器,例1:设计1位全加器。,LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY qjq1 IS PORT(A,B, CIN: IN STD_LOGIC; SUM,COUT: OUT STD_LOGIC); END qjq1; ARCHITECTURE data_flow OF qjq1 IS BEGIN PROCESS(A,B,CIN) BEGIN COUT=(A AND B)OR(A AND CIN)OR(B AND CIN); END PROCESS; SUM

17、=A XOR B XOR CIN; END data_flow;,注意 优先级,加法器,二任务2:8421 BCD码转换为余3码电路 1任务分析 只要在8421码上加常数3即可得到余3码。 BCD码+0011=余3码 即电路输入8421码加上3(0011)输出余3码,加法器,2任务实施 完成8421 BCD码转换为余3码电路的文本编辑,LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY BCD_3 IS PORT ( a: IN STD_LOGIC_VECTOR(3 DOWNTO

18、0); s: OUT STD_LOGIC_VECTOR(3 DOWNTO 0); END ENTITY BCD_3; ARCHITECTURE behav OF BCD_3 IS BEGIN s = a + 0011; END behav;,加法器,仿真测试,加法器,设计8位整数加法器,将数据类型转换为一致,LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_ARITH.ALL; ENTITY jfq8 IS PORT( op1,op2: IN UNSIGNED(3 DOWNTO 0); result: OUT INTEG

19、ER); END jfq8; ARCHITECTURE behavior OF jfq8 IS BEGIN result=CONV_INTEGER(OP1+OP2); END behavior;,四、运算器设计,五、奇偶校验电路设计,设计9位奇偶校验电路,输入数据中“1”的个数为奇数时输出为“0”,否则输出为“1”。,LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY jou9 IS PORT( a: IN STD_LOGIC_VECTOR(8 DOWNTO 0); y: OUT STD_LOGIC); END jou9;,ARCHITECTUR

20、E behavior OF ymq83 IS BEGIN PROCESS(a) VARIABLE temp:STD_LOGIC; BEGIN temp:=1; FOR i IN 0 TO 8 LOOP temp:=temp XOR a(i); END LOOP; END PROCESS; y=temp; END behavior;,能否定义为信号?,例1:设计9位奇偶校验电路,输入数据中“1”的个数为奇数时输出为“0”,否则输出为“1”。,奇偶校验电路设计,设计一双向8位总线驱动器,LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY qd8 IS

21、 PORT(A,B: INOUT STD_LOGIC_VECTOR(7 DOWNTO 0); EN,DIR:IN STD_LOGIC); END qd8; ARCHITECTURE behavior OF qd8 IS SIGNAL AOUT,BOUT:STD_LOGIC_VECTOR(7 DOWNTO 0); BEGIN AB:PROCESS(A,EN,DIR) IF (EN=0) AND (DIR=1) THEN BOUT=A; ELSE BOUT=“ZZZZZZZZ”; END IF; B=BOUT; END PROCESS AB;,为什么定义信号?,BA:PROCESS(B,EN,DI

22、R) IF (EN=0) AND (DIR=0) THEN AOUT=B; ELSE AOUT=“ZZZZZZZZ”; END IF; END PROCESS BA; A=AOUT END behavior;,设计一双向8位总线驱动器,六、已知真值表逻辑设计方法,例1:设计4选1数据选择器。,方法一:采用CASE语句 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY xzq4_1 IS PORT( a,b: IN STD_LOGIC; i0,i1,i2,i3: IN STD_LOGIC; f: OUT STD_LOGIC); END xzq4_

23、1;,ARCHITECTURE behavior OF ymq83 IS SIGNAL sel:STD_LOGIC_VECTOR(1 DOWNTO 0); BEGIN selFFFFNULL; END CASE; END behavior;,为什么有OTHERS?,已知真值表逻辑设计方法,方法二:采用条件信号代入语句 ARCHITECTURE behavior OF ymq83 IS SIGNAL sel:STD_LOGIC_VECTOR(1 DOWNTO 0); BEGIN sel=B,并行 or 顺序 描述?,已知真值表逻辑设计方法,方法三:采用IF语句 ARCHITECTURE beha

24、vior OF ymq83 IS SIGNAL sel:STD_LOGIC_VECTOR(1 DOWNTO 0); BEGIN sel=B,有无优先级?,已知真值表逻辑设计方法,方法四:采用选择信号代入语句 ARCHITECTURE behavior OF ymq83 IS SIGNAL sel:STD_LOGIC_VECTOR(1 DOWNTO 0); BEGIN sel=B,并行 or 顺序 描述?,已知真值表逻辑设计方法,八、已知逻辑电路设计方法,例1:已知24线译码器电路。,请用数据流的方式设计,LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; EN

25、TITY ymq24 IS PORT(A0,A1: IN STD_LOGIC; Y0,Y1,Y2,Y3: OUT STD_LOGIC); END ymq24; ARCHITECTURE data_flow OF ymq24 IS BEGIN PROCESS(A0,A1) BEGIN Y0= Y1= Y2= Y3= END PROCESS; END data_flow;,Y0=NOT (NOT A1) AND (NOT A0); Y1=NOT (NOT A1) AND A0); Y2=NOT ( A1 AND (NOT A0); Y3=NOT (A1 AND A0);,已知逻辑电路设计方法,添加中间信号,已知逻辑电路设计方法,ARCHITECTURE dataflow OF ymq24 IS

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论