1 基于Multisim的VHDL建模
一个完整的、典型的VHDL设计流程既是自顶向下设计方法的具体实施途径,也是EDA工具软件本身的组成结构。图1是基于EDA软件的FPGA/CPLD开发流程框图。对于目前流行的EDA工具软件,图1的设计流程具有一般性。下面以交通灯为例说明基于Multisim的VHDL建模实现。
图1 开发流程框图
1.1 设计要求
设计要求:在Multisim中利用VHDL语言,设计一个简单交通灯控制系统,要求东西方向绿灯亮,南北方向红灯亮,时间8 s。东西方向与南北方向黄灯亮,时间2 s。南北方向绿灯亮,东西方向红灯亮,时间8 s。如果发生紧急事件,可以手动控制四个方向红灯全亮。
1.2 基于Multisire的VHDL建模
(1)Multisim中的VHDL语言编辑
由于Multisim软件不能直接使用VHDL模块,需要同时安装Multisim 2001软件。
①用Multisim中的VHDL-SIMULATION模块完成VHDL语言的编辑,命名为“traffic.acc”。
②编译链接编辑好的VHDL语言,除了检查VHDL语言错误外,编译链接会产生一个“*.vx”文件,只有这个文件才能在制作元件封装时调用。
(2)Multisim中元件制作封装
Multisim使用模块化的仿真方法,VHDL语言不能直接在Multisim软件中仿真。在Multisim中使用COMPONENT WIZARD命令进行交通灯的元件封装制作。
①点击TOOL中的COMPONENT WIZARD命令,输入元件名字和元件类型,还可以输入作者名字。
②输入元件引脚数和元件引脚参数设计。包括引脚名称,该名称必须和VHDL语言中的名字相同;引脚类型,输入或输出等类型;元件外形的制作。
③仿真模型选择。输入模型名字,添加生成的VHDL语言文件“*.vx”。
④制作封装好的交通灯元件如图2所示。
图2 VHDL交通灯控制元件
2 基于Multisim的VHDL仿真
设计中的CLK信号采用Multisim元件库提供的时钟元件。交通信号灯采用Multisim元件库提供的traffic_light元件。电路如图3所示。
图3 交通灯控制系统电路图
由于交通灯控制元件U7的输出高电平有效,而元件库提供的traffic_light元件是低电平有效,在电路中设计子电路模块XI实现高低电平的转换。