“数字电子技术基础”中常用组合逻辑器件的仿真教学 数字电子技术第6版答案
摘要:在“数字电子技术基础”常规教学模式中,融入仿真辅助教学,用VHDL语言和图形输入两种设计方式将组合逻辑功能器件的逻辑设计输入到MAX+plus II软件中,依靠软件自动完成逻辑编译和仿真测试。
关键词:VHDL;MAX+plus II;仿真
作者简介:曾伶俐(1972-),女,湖北京山人,三峡大学电气与新能源学院,副教授;黄悦华(1972-),男,湖北监利人,三峡大学电气与新能源学院,教授。(湖北?宜昌?443002)
中图分类号:G642?????文献标识码:A?????文章编号:1007-0079(2012)25-0049-02
“数字电子技术基础”包含组合逻辑功能器件的内容,该内容主要介绍编码器、译码器、数据选择器、数值比较器等器件。对每个逻辑器件课程均详细给出了功能表、逻辑图和工作原理。这种纯理论模式的教学显得单调、晦涩,如果内容再往纵深方向扩展一点,学生则会感到难于理解和掌握,所以纯理论教学不能达到良好的教学效果。如果能够结合仿真实验展示,给学生以直接的图形化印象教学和趣味性教学,则能激发学生的学习兴趣,能让学生主动地学习并较容易地理解和接受知识,而且这种逻辑仿真迅速而简便,不需要单独的实验装置,直接依靠电脑中的EDA软件完成,所以教师可以在多媒体理论教学中直接调用仿真软件演示。
以VHDL语言表达设计意图,以FPGA作为硬件实现载体,以计算机为设计开发工具,以EDA软件为开发环境的现代电子设计方法日趋成熟。作为理论课程的辅助教学,不需要FPGA硬件载体,完全可以依赖功能强大的计算机,在EDA工具软件平台上,对以硬件描述语言为系统逻辑描述手段完成的设计文件,自动地完成逻辑编译、逻辑化简、逻辑分割、逻辑综合、结构综合(布局布线),以及逻辑优化和仿真测试,直至实现既定的电子线路系统功能。
一、仿真教学的软件和硬件平台
ALTERA公司的EDA工具MAX+plus II人机界面友好、易于使用、性能优良,因而受到FPGA、CPLD器件设计人员的欢迎。运行在MAX+plus II环境下的VHDL语言具有C语言设计风格,好学好用,因此被众多用户使用。VHDL语言描述能力强,覆盖面广,抽象能力强,所以用VHDL语言作为硬件模型建模很合适。设计者的原始描述是非常简练的硬件描述。
VHDL语言可以在多种EDA工具设计环境中运行,在这里使用MAX+plus II软件,硬件平台是工作站或高档微机。高档微机的配置应该具有:[1]
高分彩显 17英寸以上,分辨率1024×768或更高
硬盘 20GB以上
内存 512MB以上
CPU Intel兼容CPU
光驱 8倍速以上
操作系统 Windows XX
开发工具 MAX+plus II 或 Quartus II
二、38译码器的逻辑图和逻辑功能
以38译码器为例,将理论教学和实验仿真教学结合起来。译码的功能是将具有特定涵义的二进制码进行辨别,并转换成控制信号,[2]具有译码功能的逻辑电路称为译码器。38译码器有3个输入a、b、c,它们共有8种状态的组合,即可译出8个输出信号d0-d7,故该译码器称为3线-8线译码器。该译码器可由8个3输入的与门和3个反相器实现,逻辑图如图1所示。
三、38译码器的实验仿真
在MAX+plus II软件中输入38译码器的设计,然后利用该软件进行仿真测试将译码器的时序波形做出来,可以非常直观地看到译码器的输入和输出的对应关系,从而了解译码器的逻辑功能。
1.在MAX+plus II软件中输入38译码器的设计
译码器设计输入有两种方式,图形输入法和文本输入法。后者易保存和修改,更适于设计复杂组合逻辑电路和状态机。
(1)以文本方式用VHDL硬件描述语言输入38译码器的逻辑设计。新建一个文本编辑文件,选择File及其New,选Text Editor file文件类型,用VHDL语言对38译码器编写如下程序
Library ieee; ??begin
USE ieee.std_logic_1164.all; ?Process(a)
USE ieee.std_logic_unsigned.all; ??begin
if a="000" then
ENTITY ymq_38_2 is ??D<="00000001";
port(a:in std_logic_vector(2 downto 0);?elsif a="001" then
D:out std_logic_vector(7 downto 0)); ?D<="00000010";
elsif a="010" then
end; ??D<="00000100";
Architecture one of ymq_38_2 is ?elsif a="011" then
D<="00001000"; ??D<="01000000";
elsif a="100" then ?else
D<="00010000"; ??D<="10000000";
elsif a="101" then ?end if;
D<="00100000"; ?end process;
elsif a="110" then ?end;
(2)以图形编辑的方式直接输入38译码器的逻辑图。新建一个图形编辑文件,选择File及其New,选Graphic Editor类型,在该文件窗口中调出三输入与门AND3、反相器NOT、输入INPUT 和输出OUTPUT元件,按图2所示电路输入设计。
2.对输入设计文件进行编译