《 E D A 技 术》 课 程 教 学 讲授:伍宗富 湖南文理学院电气与信息工程学院 2017年3月19日星期日
第 六 讲 组合逻辑电路设计 教学目的:使学生掌握组合逻辑电路的设计方法。 第 六 讲 组合逻辑电路设计 教学目的:使学生掌握组合逻辑电路的设计方法。 教学重点:CPLD/FPGA器件实现组合逻辑电路;编码器、译码器。 教学难点:VHDL与CPLD/FPGA工程实现。 教学方法:讲授法、计算机辅助法。 课时计划:2学时 使用教材:EDA技术及应用.谭会生等.西安:西安电子科技大学出版社 主要参考文献: [1] 徐光辉等.CPLD/FPGA的开发和应用[M].北京:电子工业出版社 [2] 侯伯亨等.VHDL硬件描述语言与数字逻辑电路设计[M].西安:西安电子科技大学出版社 [3] http://www.altera.com [4] 周立功等.SOPC嵌入式系统基础教程[M].北京:北京航空航天大学出版社
课题:组合逻辑电路设计 一、 VHDL编程设计 二、 VHDL实际应用 三、基本门电路设计 四、四选一选择器电路设计 五、三态门及总线缓冲器电路设计 六、课堂小结 七、作业
3个二进制输入端A,B,C和8个译码输出端y0~y7。 EN使能输入脚为方便译码器的控制或便于将来扩充用。
表1 3-8线译码器的真值表
(2)译码器的VHDL编程
三、基本门电路设计 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY GATE IS PORT (A,B: IN STD_LOGIC; YAND,YOR,YNAND,YNOR,YNOT,YXOR: OUT STD_LOGIC); END ENTITY GATE; ARCHITECTURE ART OF GATE IS BEGIN YAND<=A AND B; --与门输出 YOR<=A OR B; --或门输出 YNAND<=A NAND B; --与非门输出 YNOR<=A NOR B; --或非门输出 YNOT<=NOT B; --反相器输出 YXOR<=A XOR B; --异或门输出 END ARCHITECTURE ART;
四、四选一选择器电路设计 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY MUX41 IS PORT (INP: IN STD_LOGIC_VECTOR(3 DOWNTO 0); A,B:IN STD_LOGIC; Y:OUT STD_LOGIC); END ENTITY MUX41; ARCHITECTURE ART OF MUX41 IS SIGNAL SEL:STD_LOGIC_VECTOR(1 DOWNTO 0); BEGIN SEL<=B&A; PROCESS(INP,SEL) IF(SEL="00")THEN Y<=INP(0); ELSIF (SEL="01")THEN Y<=INP(1); ELSIF (SEL="11")THEN Y<=INP(2); ELSE Y<=INP(3); END IF; END PROCESS; END ARCHITECTURE ART;
五、三态门及总线缓冲器电路设计 1.三态门电路 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY TRISTATE IS PORT (EN,DIN:IN STD_LOGIC; DOUT:OUT STD_LOGIC); END TRISTATE; ARCHITECTURE ART OF TRISTATE IS BEGIN PROCESS(EN,DIN) IF EN='1' THEN DOUT<=DIN; ELSE DOUT<='Z'; --DOUT<='1'; END IF; END PROCESS; END ARCHITECTURE ART;
五、三态门及总线缓冲器电路设计 2.单向总线驱动器电路 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY TR1_BUF8 IS PORT (DIN:IN STD_LOGIC_VECTOR(7 DOWNTO 0); EN:IN STD_LOGIC; DOUT:OUT STD_LOGIC_VECTOR(7 DOWNTO 0)); END ENTITY TR1_BUF8; ARCHITECTURE ART OF TR1_BUF8 IS BEGIN PROCESS(EN,DIN) IF(EN='1')THEN DOUT<=DIN; ELSE DOUT<="ZZZZZZZZ"; END IF; END PROCESS; END ARCHITECTURE ART;
五、三态门及总线缓冲器电路设计 3.双向总线驱动器电路 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY BIDIR IS PORT(A,B:INOUT STD_LOGIC_VECTOR(7 DOWNTO 0); EN,DIR:IN STD_LOGIC); END ENTITY BIDIR; ARCHITECTURE ART OF BIDIR IS SIGNAL AOUT,BOUT:STD_LOGIC_VECTOR(7 DOWNTO 0); BEGIN PROCESS(A,EN,DIR) IF((EN='0')AND (DIR='1'))THEN BOUT<=A; ELSE BOUT<="ZZZZZZZZ"; END IF; B<=BOUT; END PROCESS; PROCESS(B,EN,DIR) IF((EN='0')AND (DIR='0'))THEN AOUT<=B; ELSE AOUT<="ZZZZZZZZ"; A<=AOUT; END ARCHITECTURE ART;
课外作业: 教材P210 3.18、3.26