柴志成 罗俊宁
【摘要】随着大规模集成电路的广泛应用,实用性和创新性欠缺的传统数字电路教学模式,已不再适应现代应用型人才的培养。本文提出了将VHDL描述语言融入数字电路教学中的改革方案,即通过具体实例说明,VHDL语言能在丰富教学内容的同时,降低电路设计难度,提高学生学习兴趣及设计能力,从而改进教学效果。
【关键词】数字电路;VHDL;教学改革;设计方法
1.引言
数字电路是理工科中的电类专业和计算机专业必修的专业基础课程,也是信息类各专业的平台课程。该课程在介绍有关数字系统基本知识、基本理论、基本电路的基础上,重点讨论数字系统中各种逻辑电路分析与设计的基本方法,以及该领域的发展现状及最新的技术。设置该课程的主要目的是为了让学生了解各种基本逻辑电路,能熟练地运用有关知识和理论对各类逻辑电路进行分析设计。目前, 大多数高等院校仍是采用传统的数字电路教学模式, 以教材为中心,过于强调基本原理、公式的推导以及波形的分析,往往让学生觉得抽象,不能够很好地理解电路、集成芯片的功能及应用。而实验环节主要在实验箱上完成,开设的是一些验证性的实验,对各实验项目的电路设计以手工为主,一般遵循自底向上的设计方法,从电路的功能分析,真值表、表达式、逻辑电路图到器件的选择、连线、测试等,学生的认识仅仅停留在局部小部件上,复杂的系统设计思想受到限制。在数字电子技术飞速发展的今天,大规模以及超大规模集成电路的广泛应用,这种缺乏实用性和创新性的传统教学模式,已不再适应现代应用型人才的培养。因此,教学需要融入新技术 、突破传统教学模式,引入VHDL语言的数字电路教学改革就成为一个重要的研究课题。
2.VHDL语言及其特点
超高速集成电路硬件描述语言(VHDL) 是一种用于数字电路设计的高级语言,是被IEEE和美国国防部确认为标准的硬件描述语言,其主要用于描述数字电路的结构,行为,功能和接口。基于这种描述结合相关的软件工具,可以得到所期望的实际数字电路。利用VHDL语言进行电路设计具有以下几个特点:
(1)VHDL可用于设计复杂的、多层次的设计,并且支持设计库和设计的重复使用;
(2)与其他的硬件描述语言相比,VHDL具有更强的行为描述能力;
(3)VHDL有丰富的仿真语句和库函数,使其在设计的早期就能查验设计系统的功能可行性,借助于相关仿真器随时可对设计进行仿真模拟;
(4)对于VHDL完成的一个确定的设计,一般可进行逻辑综合和优化,并能自动的把VHDL描述设计转变成门级网表;
(5)VHDL语言支持电路描述由高层向低层的综合变换,便于文档管理,易于理解和设计的再利用;
(6)VHDL对于设计的描述具有相对独立性,设计者可以不懂硬件的结构,最终实现的目标器件设计。
3.VHDL语言较传统设计方法的优点
通过上述特点,我们了解到VHDL语言功能强大、设计灵活、容易掌握。将VHDL语言引入数字电路教学中,有利于增强学生对电路设计的认识,掌握更多的设计方法,提高分析设计能力。本文针对六进制约翰逊计数器的设计,分别采用了传统设计方法和VHDL方法进行设计,通过对比可得出,VHDL可以显著提升数字电路的教学效果。
3.1 传统设计方法
传统电路设计采用自底向上的设计方法如图1所示。本文选用JK、D触发器及门电路来实现,采用3个触发器连接产生8个状态,六进制约翰逊计数器只有6个状态,将其中的010,011两个状态禁止掉,具体状态转换表如表1所示。
图1 自底向上设计方法
表1 状态转换表
CLK Q2n'Q1n'Q0n Q2n+1'Q1n+1'Q0n+1
1 0..0..0 0...0...1
2 0..0..1 0...1...1
3 0..1..1 1...1...1
4 1..1..1 1...1...0
5 1..1..0 1...0...0
6 1..0..0 0...0...0
由状态转换表得出状态方程:
,,
将Q2,Q1选用D触发器,Q0选用JK触发器,得出驱动方程:
,,,
根据驱动方程最终画出逻辑原理图如图2所示。
图2 逻辑原理图
在得到逻辑原路图后,还需要进行逻辑验证,验证无误后再对逻辑原理图进行逻辑验证无误后,在PCB版上完成布线、装配、焊接及调试,如有问题,再进行局部修改,直至整个电路调试完毕为止。
图3 自顶向下设计方法
3.2 VHDL设计方法
VHDL设计采用自顶向下的设计方法如图3所示。首先根据设计要求对电路功能进行行为级描述和仿真,然后再进行RTL级描述和仿真,达到预期结果后再进行逻辑综合、布局布线,最终完成电路设计。
(1)行为描述,也就是对计数器数学模型的描述,通过代码描述出输入、输出引脚和计数过程中状态变化时序及关系,具体程序如下:
LIBRARY ieee;
USE ieee.std_logic_1164.all;
entity counter6 is
port(clk,reset:in std_logic;
count_out:out std_logic_vector(2 downto 0));
end counter6;
architecture rtl Of counter6 is
signal next_count:std_logic_vector(2 downto 0);
begin count_proc:process(clk,reset)
begin if reset='0' then
next_count<="000";
elsif clk'event and clk='1' then
case next_count is
when "000"=>next_count<="001";
when "001"=>next_count<="011";
when "011"=>next_count<="111";
when "111"=>next_count<="110";
when "110"=>next_count<="100";
when "100"=>next_count<="000";
when others=>next_count<="000";
end case;
end if;
count_out<=next_count;
end process;
end rtl;
利用Max+plusⅡ软件对上述程序进行编译、仿真,仿真结果如图4所示,结果表明,该方案符合设计要求。
图4 仿真结果
(2)RTL描述,即用具体门电路、运算器等来描述行为部分。行为描述程序抽象程度较高,故需转化为RTL方式描述的VDHL程序,以便于映射到具体的逻辑元件,得到硬件的具体实现。对于改写后的RTL程序同样需要进行仿真,检查正确性。
(3)逻辑综合,利用MAX+PLUS II Advanced Synthsis ALtera将其转换为门级网络表,输出逻辑原理图并进行仿真、检查定时关系。最后根据需要利用门级网表做出ASIC芯片或生成FPGA码点,完成电路设计。
3.3 VHDL与传统设计方法比较
相较于传统设计方法,VHDL采用自顶向下的设计方法,可进行结构化、模块化设计,更利于分工合作,再加上各层次的仿真检查,便于早期发现错误并改正,提高了设计效率;同时设计描述的相对独立性,使得学生设计时不必写表达式、真值表,不必考虑所用器件,降低了设计难度;另外VHDL语言简单易学,MAX+PLUS II界面友好,通过仿真波形分析,学生能更形象、更深刻的理解所学内容。
4.结束语
数字电路作为专业基础课程,其教学效果的好坏,将直接影响后续相关专业课程的学习。在数字电路教学中引入VHDL描述语言,利用MAX+PLUS II进行编译、仿真、演示,不但丰富了教学内容,改进了教学手段,提高学习兴趣,还有助于学生消除“抽象感”;另外VHDL能将传统教学中较难实现的电路设计转换为软件设计,不仅简化了设计工作,还有利于增强学生对集成芯片的认识,提高分析设计能力,掌握更多的设计方法,以适应现代应用型人才培养要求。
参考文献
[1]张天瑜.基于VHDL的数字电路课程改革研究[J].湖北广播电视大学学报:2010(02):25-26.
[2]黄红霞.基于VHDL提升数字电路教学效果的研究[J].黄石理工学院学报,2010(03):66-70.
[3]谭勇,朱斌.基于EDA技术的数字电路实验教学改革[J].中国现代教育装备,2012(17):43-44.
[4]毕春跃,万忠,孙荣高.基于EDA技术的数字电路教学研究[J].2011(09):89-91.
作者简介:柴志成(1982—),男,湖北浠水人,硕士,贵阳学院数学与信息科学学院讲师。