硬件描述语言在数字电路设计中的应用|数字电路基础

  摘 要: 本文从分析电气信息类专业数字电子技术及其实验教学现状出发,根据数字集成电路设计领域发展趋势和工程实践要求,介绍了硬件描述语言在数字集成电路设计中的应用,并通过两个设计实例进一步说明了其分类、特点和差异。
  关键词: 硬件描述语言 verilog HDL VHDL
  
  1.引言
  
  数字电子技术是电气信息类专业一门重要的技术基础课程,既具有一定的理论性,同时作为一门技术课程又有相当强的实践性。因此,我们必须为理论的讲述配置一定的实验项目。目前实验项目的组织有两种途径:一是采用原来传统的小规模(SSI)或中规模集成电路(MSI)为单元构建实验项目;二是以大规模(LSI)可编程CPLD/FPGA芯片为平台,利用专门的硬件描述语言来实现。
  
  2.现状与需求
  
  目前,在许多本科院校的数字电子技术课程实验教学和数字电路的设计中,仍采用传统的小规模(SSI)或中规模集成电路(MSI)为单元来构建和设计。这种思路已经不能适应教学和行业发展趋势的需要。它主要有如下几个方面的原因:一是实验室必须为每一个实验项目独立地准备实验器材,而且要保证实验元件的正确性和可靠性,这是一件很费时费力的工作,同时一旦有学生操作失误,芯片就有可能烧坏,从而浪费资源;二是目前的大学生电子设计大赛所设计的数字系统设计和一些接口电路已经涉及和要求掌握在大规模和超大规模可编程芯片基础上设计复杂的数字电路;三是目前随着微电子技术和计算机技术的飞速发展,工程中已经广泛采用以CPLD/FPGA为基础设计数字集成电路,用软件的方法设计硬件电路已经是行业的需要。
  为此,有必要在课堂教学中引入硬件描述语言用以设计数字集成电路,并设置相应的实验项目以掌握硬件描述语言和熟悉相关开发工具。
  
  3.硬件描述语言在数字电路设计中的应用
  
  3.1硬件描述语言简介[1]
  一般的硬件描述语言可以在三个层面上描述电路,其层次由低到高依次为门电路级、RTL级和行为级。任何一种硬件描述语言都要转换成门电路级才能被布线器所接受。综合的方向是由高到底:行为级→RTL级→门电路级。
  3.2硬件描述语言分类及主要差异
  目前主流的描述语言有Verilog HDL和VHDL两种,各有特点和优势。Verilog HDL更适合RTL和门电路的描述,是一种较为低级的语言。其综合过程只要经过RTL级→门电路级,故较为容易控制电路资源,常用在专业的集成电路设计上。而VHDL语言则更适合行为级和RTL级的描述,因此其综合过程通常要经过行为级→RTL级→门电路级的转换。[2]
  同时,Verilog HDL语言具有C语言的描述风格,是一种较为容易掌握的语言。VHDL语言入门较难,但熟悉后设计效率比Verilog HDL要高。
  3.3硬件描述语言在数字电路设计中的应用举例
  译码器是数字电路中应用最为广泛的中规模集成电路,常用于设计接口电路和扩展I/O口。下面是用VHDL语言来描述一个3―8译码器的例子。[3]
  LIBRARY IEEE;
  USE IEEE.STD_LOGIC_1164.ALL;―IEEE库说明
  ENTITY decoder IS
  PORT(A:IN STD_LOGIC_VECTOR(2 DOWNTO 0);―实体说明,输入三位地址,高电平有效
  S:IN STD_LOGIC;―使能信号,高电平有效
  Y:OUT STD_LOGIC_VECTOR(7 DOWNTO 0));―输出八个译码信号,高电平有效
  END decoder;
  ARCHITECTURE arch OF decoder IS―结构体描述
  SIGNAL SEL:STD_LOGIC_VECTOR(3 DOWNTO 0);―敏感列表
  BEGIN
  SEL(0)<=S;
  SEL(1)<=A(0);
  SEL(2)<=A(1);
  SEL(3)<=A(2);
  WITH SEL SELECT
  Y<="00000001"WHEN"0001",―功能描述
  "00000010"WHEN"0011",
  "00000100"WHEN"0101",
  "00001000"WHEN"0111",
  "00010000"WHEN"1001",
  "00100000"WHEN"1011",
  "01000000"WHEN"1101",
  "10000000"WHEN"1111",
  "11111111"WHEN ORTHERS,
  END arch;
  译码器种类繁多,输入输出电平有效值要求高低不同,在此我们只需稍改功能描述中的取值即可,非常方便。因此修改教学内容是非常方便的。不难看出内部结构比较复杂的译码器用VHDL语言描述就显得非常简洁易懂。其实一般较为复杂的器件比较适合用VHDL来描述,在RTL级和行为级上进行描述。
  D触发器是时序电路的基础,是数字系统的基本单元。下面是利用Verilog HDL描述一个异步复位的D触发器。
  module DFF(q,qb,d,clk,clr);模块名和端口列表
  output q,qb;//端口输入输出说明,输出端q和反相qb
  input d,clk,clr;//数据输入端d,时钟端clk和复位端clr
  reg q;端口类型说明
  wire qb,d,clk,clr;
  assign qb=!q;//互非输出
  always @(posedge clk or negedge clr)//异步复位时的敏感表
  if(!clr)
  q<=0;//低电平复位信号有效是清零
  else
  q<=d;
  endmodule
  将敏感列表稍加改动即可变为同步复位的D触发器。像触发器这样的时序器件用Verilog HDL描述是比较方便的。Verilog HDL语言对一些电气特性、时延特性的描述有非常强大的描述能力。
  
  4.结论
  
  以可编程器件为基础,利用硬件描述语言进行数字集成电路设计已经是业界不可避免的发展趋势。这不仅优化了教学资源和设计环境,而且提高了设计效率,对切实提高学生动手能力和适应市场以及技术发展的要求起着重要作用。
  
  参考文献:
  [1]潘松,王国栋.VHDL实用教程[M].成都:电子科技大学出版社,2000.
  [2]夏宇闻.复杂数字电路与系统的Verilog HDL设计技术[M].北京航空航天大学出版社,2002.
  [3]高吉祥.数字电子技术[M].北京:电子工业出版社,2007.
  [4]江国强.EDA技术与应用[M].北京:电子工业出版社,2004.

推荐访问:电路设计 描述 语言 硬件