当前位置:文档之家› 第三部分5:VHDL语言-描述风格

第三部分5:VHDL语言-描述风格

可编程逻辑器件与VHDL设计技术
第三部分:VHDL语言(5)
北京理工大学雷达技术研究所
陈禾

可编程逻辑器件与VHDL设计技术
本节内容
VHDL描述风格
行为级描述方式 寄存器传输级RTL(或数据流) 结构级

可编程逻辑器件与VHDL设计技术
VHDL的描述风格
在VHDL中可以使用多种建模的方法,这 些建模的方法称为描述风格 三种基本的描述风格:行为描述,数据流 描述以及结构描述

可编程逻辑器件与VHDL设计技术
行为描述
行为描述表示输出与输入之间转换的行 为,它无须包含任何结构信息
library IEEE; use IEEE.std_logic_1164.all; entity full_adder is port ( x, y, c_in : in std_logic; sum, c_out : out std_logic); end full_adder;

可编程逻辑器件与VHDL设计技术
行为描述
architecture behave of full_adder is begin process(x,y,c_in) variable n : integer; constant sum_v : std_logic_vector(0 to 3) := “0101”; constant carry_v : std_logic_vector(0 to 3) := “0011”;

可编程逻辑器件与VHDL设计技术
行为描述
begin n := 0; if (x = ‘1’) then n:= n+ 1; end if; if (y = ‘1’) then n:= n+ 1; end if; if (c_in = ‘1’) then n:= n+ 1; end if; sum <= sum_v(n); c_out <= carry_v(n); end process; end behave;

可编程逻辑器件与VHDL设计技术
信号驱动源
信号赋值与变量赋值最大的差异在于前者 有延迟,而后者是赋值立即生效 事项:当一个进程(或等价进程)给一个 信号赋值时,也许要经过一段指定的时间 后才让该信号生效,即在给定时间之后安 排一个事项 驱动源:一个信号的事项的序列称为该信 号的驱动源 一个驱动源是一组时间和值对,保存每个 事项的值及其发生时间

可编程逻辑器件与VHDL设计技术
驱动源的建立
给信号赋值的进程给该信号建立一个驱动 源 每个进程给一个信号赋值都只给该信号建 立一个驱动源,无论在该进程中给该信号 赋几次值 在元件例示语句中,将信号连接到out, inout或buffer端口也给该信号建立一个 驱动源

可编程逻辑器件与VHDL设计技术
驱动源的建立
process begin sig <= transport 3 after 1 ns; sig <= transport 5 after 1 ns; end process

可编程逻辑器件与VHDL设计技术
多驱动描述
在数据总线的双向总线等描述中,多驱动 信号是非常有用的。 VHDL是一种对信号的全部之起作用的因 素。

可编程逻辑器件与VHDL设计技术
对驱动源的限制
通常一个信号只能有一个驱动源
architecture error_arch of example is begin a <= b after 10 ns; a <= c after 10 ns; end error_arch;
architecture better_arch of example is begin a <= b when en=‘0’ else c when en=‘1’ else ‘X’; end better_arch;

可编程逻辑器件与VHDL设计技术
延迟
定义:从发生到生效的时间间隔,是相对 于当前时刻的相对量 2种延迟模型:惯性延迟(inertial)与传输 延迟(transport) 信号赋值缺省为惯性延迟

可编程逻辑器件与VHDL设计技术
惯性延迟
直接与电路相关,是器件延迟 为什么会有惯性延迟? 体现了开关电路的模型,宽度小于开关阈 值的脉冲被忽略 表示的元件:仅当其输入值保持给定的时 间长度,输出端才能有响应

可编程逻辑器件与VHDL设计技术
传输延迟
导线延迟 无论脉冲多窄都能传输的延迟模型

可编程逻辑器件与VHDL设计技术
生成语句
生成语句给设计中的循环部分或条件部分的确立 提供了一种机制 在结构体中可以用它来描述规则结构,如块阵列、 元件例示或进程 生成标号:生成方案 generate {生成语句} end generate [生成标号] 两种生成方案:for和if for表示重复结构,if表示结构中的例外、 生成语句为设计者提供建立重复结构的能力

可编程逻辑器件与VHDL设计技术
if生成方案
语法: 标记 : if 表达式 generate {并行表达式} end generate [标记] 与if语句不同,if…generate语句没有 else或者elsif分支语句

可编程逻辑器件与VHDL设计技术
生成语句
library IEEE; use IEEE.std_logic_1164.all; entity shift is port(a, clk : in std_logic; b : out std_logic); end shift; architecture gen_shift of shift is component dff port (d, clk : in std_logic; q : out std_logic); end component; signal z : std_logic_vector(0 to 4); begin z(0) <= a; g1 : for j in 0 to 3 generate dffx : dff port map (z(j), clk, z(j+1)); end generate; b <= z(4); end gen_shift;

可编程逻辑器件与VHDL设计技术
生成语句

可编程逻辑器件与VHDL设计技术
数据流描述
行为级描述方式通常供仿真用,改写成数 据流形式可进行逻辑综合。 数据流描述方式亦称RTL(寄存器传输级) 描述方式。 是一种明确规定寄存器描述的方法

可编程逻辑器件与VHDL设计技术
数据流描述
数据流描述表示行为,也隐含表示结构
architecture dataflow of full_adder is signal s : std_logic; begin s <= x xor y; sum <= s xor c_in; c_out <= (x and y) or (s and c_in); end dataflow;

VHDL硬件描述语言实验报告

硬件描述语言实验附录 姓名:xxx 学号:xxx 指导教师:xxx 目录 硬件描述语言实验附录 (1) 实验1.三输入与门电路实验 (2) 实验2. 三—八译码器实验 (3) 实验3. D触发器实验 (4) 实验4. 分频器实验 (5) 实验5. 状态机实验 (8)

实验1.三输入与门电路实验 --三输入与门电路threeinput --姓名:王定 --学号:1306034248 --中北大学 LIBRARY IEEE; --调用库 USE IEEE.STD_LOGIC_1164.ALL;--库文件 -------------------------------------------------------------- ENTITY threeinput IS --定义实体名,其名称必须与VHDL文本文件名称相同PORT( A: IN STD_LOGIC; --输入端口,时钟输入 B: IN STD_LOGIC; --输入端口,个位写入使能 C: IN STD_LOGIC; --输入端口,十位写入使能 CO: OUT STD_LOGIC); --输出端口,溢出标志 END ENTITY threeinput; --结束端口定义 -------------------------------------------------------------- ARCHITECTURE RTL OF threeinput IS--定义结构体 BEGIN PROCESS(A,B,C) IS --开始,必须带上 BEGIN CO<=A AND B AND C ; END PROCESS; END ARCHITECTURE RTL; --结束结构体 表1. 三输入与门电路VHDL实验代码 图1. 三输入与门电路仿真波形图,A,B,C输入,CO输出

硬件描述语言VHDL大总结

VHDL大总结 一、填空题 1.两种标识符 短、扩展 2.4种基本数据类型 常量、变量、信号、文件 3.常量说明格式 constant 常数名: 数据类型:=表达式; 4.三种数据变换方法? 函数转换、常数转换、类型标记 5.四种运算操作符? 逻辑、关系、算术、并置 6.如何启动进程? (1).必须包含一个显示的敏感信号变量 (2).或者包含一个wait语句 7.五种基本结构? 库(library)、包集合(package)、实体(entity)、结构体(architecture)、配置(configuration) 8.信号与变量代入? (1).<= (2).:= 9.列举可编程逻辑器件? PROM→PLA→PAL→CPLD→FPGA→EPROM→EEPROM→GAL 10.数据类型 整数、位、位矢量、符号、布尔量、时间、错误等级、标准逻辑 11.四种端口模式? IN—OUT—INOUT—BUFFER 12.三种子结构描述语句?BLOCK—PROCESS—SUBPROGRAMS

13.结构体三种描述方式 寄存器传输(RTL)--数据流、结构描述、行为描述14.标识符规则? (1).不以数字靠头 (2).下划线不连续 (3).不与保留字重复 (4).下划线前后必须有英文字母或者数字 (5).最后一个不能使用下划线(连字符) 15.扩展标识符 \12@+\ 16.赋值? (1).信号、变量可以多次赋值 (2).常量只能定义时赋值(进程内部,子函数内部)17.高阻、不定态? 'Z'------------'X' 18.进程位置? 结构体内部 19.变量位置? 进程内部---包内部----子程序内部 20.进程执行机制? 敏感信号发生跳变 21.优先级? if语句之间具有不同优先级 22.时序电路的去驱动信号? 时钟 23.时序电路在何时发生变化? 时钟信号的边沿 24.两种状态机? (1).moore-----f(现状) (2).mealy-----f(现状,输入)

相关主题
文本预览
相关文档 最新文档