可编程逻辑器件 (FPGA/PLD) 中文网站
推荐使用1024x768分辨率
 
主 页
新手入门 设计进阶 HDL语言 PLD厂商 参考设计 开发软件 应用文章 PLD论坛
  欢迎来到可编程逻辑器件中文网站! www.PLD.com.cn

 

 

 

 

 

VHDL 程序举例


重要说明:不同软件对VHDL语法的支持范围是不一样的,以下程序中的某些语句可能不能运行在所有的软件平台之上,因此程序可能要作一些修改,同时务必注意阅读程序中的注释。以下部分程序为txt格式,请自行另存为vdh后缀的文件。有些EDA软件要求ENTITY的名称和文件名要相同,也请自行修改。 如发现错误请来信指正或在BBS上提出。

 

组合逻辑:

最高优先级编码器 8位相等比较器
三人表决器(三种不同的描述方式) 加法器描述
8位总线收发器:74245 注2) 地址译码(for m68008)
多路选择器(使用select语句) LED七段译码
多路选择器(使用if-else语句) 双2-4译码器:74139
多路选择器(使用when-else语句) 二进制到BCD码转换
多路选择器 (使用case语句) 二进制到格雷码转换
双向总线注2) 汉明纠错吗译码器
三态总线注2) 汉明纠错吗编码器
解复用器  
   

 

时序逻辑:

四D触发器:74175 用状态机实现的计数器
简单的锁存器 各种功能的计数器
简单的12位寄存器 通用寄存器
带load、clr等功能的寄存器 带三态输出的8位D寄存器:74374注2)
移位寄存器:74164 8位数据锁存器
移位寄存器  
   
 

基本语法

计数器:std_logic_unsigned的用法 条件赋值:使用when else语句
加法器:generate语句的应用 条件赋值:使用列举类型
计数器:generate语句的应用 条件赋值:使用多路选择器
计数器:GENERIC语句的应用 无符号数到整数的转换
计数器:wait语句的应用 元件例化与层次设计
将16进制转化为std_logic  
   

 

存储器举例:(注3)

FIFO  
   
   

 

状态机举例:

一个简单的状态机 莫尔型状态机1
使用列举类型的状态机 莫尔型状态机2
带同步复位的状态机 米勒型状态机
使用变量的状态机 带莫尔/米勒输出的状态机
   

 

测试向量(Test Bench)和波形产生

加法器源程序 相应加法器的测试向量(test bench)
波形发生器(含test beach) (注1) 经典双进程状态机(含test beach)
8bit采样sine波形发生器  

 

其他设计举例:

伪随机数产生器 一个简单的UART
步进电机控制器 一个游戏程序
直流电机控制器 布斯乘法器
伪随机比特发生器 4位除法器
4位乘法器 分频器的硬件描述语言设计

 

 

 

注1: 含有不可综合语句,请自行修改

注2: 一些PLD只允许I/O口对外三态,不支持内部三态,使用时要注意

注3: 设计RAM的最好方法是利用器件厂家提供的软件自动生成RAM元件,并在VHDL程序中例化

 

 

返回HDL栏目

 

 
about us | Site Map |

copyright© 1999-2003 all rights reserved www.PLD.com.cn

e-mail: