《Verilog数字逻辑系统设计》课程教学探讨

2022-09-14

在计算机技术、微电子技术高速发展的今天, 越来越多的数字逻辑电路不再采用传统的设计方式, 而是采用EDA技术完成PLD和FPGA的大规模开发设计。EDA适用于复杂数字逻辑电路和系统的总体仿真、子系统仿真和具体电路综合等各个设计阶段。EDA不但作为学习数字逻辑系统设计方法的入门和基础, 而且对于ASIC设计专业人员而言, 也是必须掌握的基本技术, 因此国内很多高校纷纷开设EDA相关课程。

一、硬件描述语言--Verilog HDL和VHDL

EDA技术的重要内容是HDL (Hardware Description Language) 硬件描述语言, 目前, 常用的HDL有Verilog HDL、VHDL、System Verilog和System C。其中VHDL和Verilog HDL在EDA设计中使用最多, 也几乎得到所有常用EDA工具的支持。VHDL语法过于严谨, 代码比较冗长, 对数据类型匹配要求过于严格, 初学者不易掌握, 学习周期较长。Verilog HDL (以下简称Verilog) 于1995年成为IEEE标准硬件描述语言。Verilog的很多语法是参照C语言语法设定的, 因此有C的许多优点。语法结构上不是很严谨, 具有使用灵活、简明扼要的特点。在高校教学中, 由于大二学年已经开设了C语言, 学生对C的语法结构和使用已经非常熟悉, 采用与C语法类似的Verilog进行数字逻辑电路的设计, 容易掌握, 且易激发其学习兴趣, 对比C和Verilog学习, 也会提高学习效率。根据笔者授课经验, 学生往往对实践学习法更有主动性, 且更易于掌握, 因此在实际教学中, 可充分利用学校EDA实验室资源, 先让学生按照教材上的步骤做一些验证性的实验, 然后进行综合性的设计实验, 由浅入深掌握这门课程的设计技术及设计方法, 培养社会需要的Verilog HDL数字逻辑系统设计人才。

二、Verilog HDL系统设计实例

在数字逻辑电路中, 采用传统设计方法实现系统, 过程繁琐, 学生会感到无从下手。特别是采用专用集成芯片时, 需要了解各种典型器件的功能、特性。实际设计过程中不仅完成芯片选择, 还要进行电路板设计、安装及调试, 尤其是后期测试时, 一旦发现问题, 不易对错误定位、修改, 导致设计周期长、效率低。而Verilog数字逻辑系统设计, 就可以避开这些繁琐的步骤, 且基于“自顶向下”设计方法的模块化程序设计可以逐层编译检错并定位, 提高设计效率。有限状态机 (Finite State Machine, FSM) 是时序电路设计中经常采用的一种方式, 尤其适合设计数字系统的控制模块, 在一些需要控制高速器件的场合, 用状态机进行设计是一种很好的解决问题的方案, 具有速度快、结构简单、可靠性高等优点。用Verilog语言设计状态机的步骤可简单归纳为以下四个步骤: (1) 分析实际问题, 确定输入、输出变量, 得到状态转换图;将实际问题抽象为数学问题, 是整个系统设计中最关键的一步。输入变量个数取决于引起电路状态变化的原因, 输出变量个数由系统功能决定。定义输入、输出状态的含义, 并对每个状态进行编码, 根据原始状态表, 得到状态转换图; (2) 定义变量类型。在always语句中执行的变量定义为reg型, 在assign语句中执行的变量定义为wire型; (3) 在always块或assign块中定义次态逻辑语句和输出逻辑; (4) 进行仿真以及编程下载。在Quartus软件环境下, 对设计的程序进行理论仿真, 通过观察波形分析输入输出之间的关系, 并与系统要求对比。仿真结果满足系统要求后, 可进行引脚分配, 编程下载。

三、序列检测系统设计如下

(1) 确定各状态:S0:输入1以前的状态;S1:输入一个1后的状态;S2:连续输入两个1以后的状态;S3:连续输入三个1以后的状态;S4:连续输入四个或四个以上个1的状态。得到状态转换图如图1所示。

(2) Verilog实现如下:

(3) 在Quartus软件环境下, 对其进行仿真验证, 可得到如图2所示的仿真波形。

从图2可看出, 当连续输入四个或四个以上1时, 状态保持为s4, 且输出为z=1;当输入x是0时, 状态转为s0, 且输出z=0, 达到系统的要求。如果用传统的数字电路设计方法进行状态机的设计, 则需要在确定状态分配和状态转换图之后, 确定触发器类型和触发器数目;然后跟据次态卡诺图得到各触发器的次态方程, 和触发器的特性方程做对比, 得到每个触发器的驱动方程和输出方程;最后画出逻辑图。学生在设计时, 往往对次态方程, 以及驱动方程和逻辑图的获得方面较困惑, 特别是状态数量较多时, 触发器数量更多, 设计过程以及计算量更繁琐。可见, 利用Verilog语言实现数字系统对设计步骤简化了很多。在实验室, 学生依此理念进行思考和学习, 在实践的同时更强化对理论知识的理解, 以实践促理论, 学生逐渐形成系统的综合设计思维, 更加适应社会的需求。

四、小结

用软件实现硬件简化设计步骤, 不易出错, 且学生掌握起来较容易。特别针对大规模数字系统的设计方面, 其优势更加明显。将软件应用到硬件设计, 可提高数字系统的实用性, 不但使学生接触到最新的数字电路设计方法, 而且使学生掌握了一门有广泛应用前景的新技能, 为其以后的发展又增添了一条新的选择。开展以实践促理论的教学方式, 使学生在实践过程中养成发现问题、分析问题、解决问题的能力, 培养创新和团队协作意识, 在以后的学习和工作中, 为学生带来极大的优势。

摘要:HDL语言采用“自顶向下”的设计理念阐述设计者的思想, 将复杂的数字系统表示为分层次的模块, 较之传统的电路图设计方式有极大的优越性。VerilogHDL语言以其与C语言相似的风格、严谨的语法结构, 便于学生学习和掌握。并探讨以实践促理论的新教学模式, 使学生掌握设计数字系统的新方法, 更适应社会的需求。

关键词:EDA,数字系统,VerilogHDL,以实践促理论

参考文献

[1] 赵天翔, 何金枝.以verilogHDL为重点的数字逻辑课程教学改革与实践[J].电脑知识与技术, 2016, 12 (35) :177-178.

[2] 郭家荣, 陈年生.《Verilog HDL程序设计》课程教学方法研究[J].科技资讯, 2017, 15 (27) :166.

[3] 蒋华, 徐晨, 宋超.“Verilog数字系统设计”课程教学改革[J].电气电子教学学报, 2013, 35 (1) :84-85.

[4] 夏宇闻.Verilog数字系统设计[M].3版.北京:北京航空航天大学出版社, 2013.

[5] 梁瑞宇, 奚吉.HDL项目设计课程教学改革研究[J].中国科教创新导刊, 2013 (32) :83-84.

[6] 马朝, 李颖, 杨明.用Verilog-HDL设计数字逻辑系统[J].计算机工程, 2015, 26 (12) :110-112.

本文来自 99学术网(www.99xueshu.com),转载请保留网址和出处

上一篇:在美术课中培养学生创造思维的策略下一篇:如何运用社交媒体拓展电子商务营销