当前位置:文档之家› 第3章 数据选择器设计应用

第3章 数据选择器设计应用


【例3-1】用VHDL设计一个非门(反相器)。 非门即y=y,设反相器的VHDL的文件名是not1.vhd,其中 的.vhd是VHDL程序文件的扩展名。程序结构如下: LIBRARY IEEE; 库和程序包 USE IEEE.STD_LOGIC_1164.ALL; ENTITY not1 IS PORT( a: IN BIT; 实体 y: OUT BIT); END not1; ARCHITECTURE behave OF not1 IS BEGIN 结构体 y <= NOT a; END ARCHITECTURE behave;
s=‘0’ 此时=不是赋值是比较 又如:IF (s1='0')AND(s2='1')OR(c<b+1) THEN . .
多路选择器的VHDL描述
IF条件语句
根据条件判断要执行的语句,有三种格式。 格式1:IF 条件 THEN 顺序执行语句 END IF; 执行时,先判断条件,条件成立则执行THEN后的所有顺序语句, 条件不成立,则执行END IF后的语句。 如:D锁存器,IF (g=„1‟) THEN q<=d; END IF; 则g=„1‟时,数据从d输入,从q输出,当g≠„1‟时,q保持不变
IF语句描述 IF语句须有进程
多路选择器的VHDL描述
多路选择器的VHDL描述
mux21a功能时序波形
多路选择器的VHDL描述
语句结构和语法说明
1. 实体表达 2. 实体名
3. 端口语句和端口信号名 ENTITY e_name IS PORT ( p_name : port_m data_type; ... p_namei : port_mi data_type ); END ENTITY e_name;
多路选择器的VHDL描述
WHEN_ELSE条件信号赋值语句
格式:目的信号量<=表达式1 WHEN 条件1 ELSE 表达式2 WHEN 条件2 ·· ·· ·· ELSE 表达式n

例:CO<=„1‟ WHEN A=“1111” ELSE „0‟;
最高赋值优先级 Z为a,非b
z <= a WHEN p1 = '1' ELSE b WHEN p2 = '1' ELSE c ;
多路选择器的VHDL描述
IF条件语句 格式2:IF 条件 THEN 顺序执行语句 ELSE 顺序执行语句 END IF; 执行时,先判断条件,条件成立则执行THEN与ELSE之间的所 有顺序语句,条件不成立,则执行ELSE后的语句。
IF (a='1' AND b='1')THEN c<='1'; END IF; IF (a='1' AND b='1')THEN c<='1'; ELSE c<=„0‟; END IF;
VHDL语言特点
(1) 作为HDL的第一个国际标准,VHDL具有很强的可移植性。 (2) 具有丰富的模拟仿真语句和库函数,随时可对设计进行仿真 模拟,因而能将设计中的错误消除在电路系统装配之前,在设计 早期就能检查设计系统功能的可行性,有很强的预测能力。 (3) VHDL有良好的可读性,接近高级语言,容易理解。 (4) 系统设计与硬件结构无关,方便了工艺的转换,也不会因工 艺变化而使描述过时。 (5) 支持模块化设计,可将大规模设计项目分解成若干个小项目, 还可以把已有的设计项目作为一个模块调用。 (6) 对于用VHDL完成的一个确定设计,可以利用EDA工具进行逻 辑综合和优化,并能自动地把VHDL描述转变成门电路级网表文件。 (7) 设计灵活,修改方便,同时也便于设计结果的交流、保存和 重用,产品开发速度快, 成本低。
(功能描述语句)则不同,结构体中必须给出相应的电路功能描述语 句,可以是并行语句,顺序语句或它们的混合。
ห้องสมุดไป่ตู้
多路选择器的VHDL描述
赋值符号和数据比较符号
y <= a WHEN s = '0' ELSE b ; 赋值符号 表达式y<= a表示输入端口a的数据向输出端口y传输;但也可以解释 为信号a向信号y赋值。 VHDL要求赋值符“<=”两边的信号的数据类型必须一致。 数据比较符号
e
逻辑门关系描述 定义信号d、e
多路选择器的VHDL描述
多路选择器的VHDL描述
【例 】 ARCHITECTURE one OF mux21a IS BEGIN PROCESS (a,b,s) BEGIN IF s = '0' THEN y <= a ; ELSE y <= b ; END IF; END PROCESS; END ARCHITECTURE one ;
多路选择器的VHDL描述
多路选择器的VHDL描述
mux21a实体
mux21a结构体
多路选择器的VHDL描述
多路选择器的VHDL描述
【例 】 ENTITY mux21a IS PORT ( a, b : IN BIT; s : IN BIT; y : OUT BIT ); END ENTITY mux21a; ARCHITECTURE one OF mux21a IS BEGIN y <= a WHEN s = '0' ELSE b ; END ARCHITECTURE one ;
布尔量(Boolean) 字符(Character) 字符串(String) 时间(Time)
用 “ ”括起来的字符序列 由整数与单位组成。 20us
错误等级(Severity Level) 仿真提示(NOTE,WARNING,ERROR, FAILURE) ≥0的整数(Natuer) 正整数(Positive)
多路选择器的VHDL描述
进程语句和顺序语句
【例】 ARCHITECTURE one OF mux21a IS BEGIN 在VHDL中,所有合法的顺序描述语 PROCESS (a,b,s) 句都必须放在进程语句中。 BEGIN IF s = '0' THEN PROCESS旁的(a,b,s)称为进程 y <= a ; 的敏感信号表,通常要求将进程中所 有的输入信号都放在敏感信号表中。 ELSE y <= b ; 当某一敏感信号有变化,启动进程, END IF; 执行进程语句,然后进入等待状态, END PROCESS; 直到下一次启动。 END ARCHITECTURE one ;
《CPLD与FPGA的应用》
第3章 数据选择器设计应用
硬件描述语言
硬件描述语言HDL是EDA技术的重要组成部分,常见 的HDL主要有:VHDL、Verilog HDL、ABEL、AHDL、 SystemVerilog和SystemC等。 其中VHDL、VerilogHDL在现在EDA设计中使用最多, 也拥有几乎所有的主流EDA工具的支持。而 SystemVerilog和SystemC这两种HDL语言还处于完善 过程中。
逻辑意义描述
多路选择器的VHDL描述
多路选择器的VHDL描述
d
【例】 ARCHITECTURE one OF mux21a IS SIGNAL d,e : BIT; BEGIN d <= a AND (NOT S) ; e <= b AND s ; y <= d OR e ; END ARCHITECTURE one ;
4. 端口模式
5. 数据类型
数据类型
数据类型 整数(Integer)
实数(Real) 位(Bit) 位矢量(Bit_Vector)


范围:32位,-2147483647-2147483646
-1.0E+38—1.0E+38 “1”或“0”两种逻辑值 用“ ”括起来的一组位数据。“0010” X“110A” TRUE,FALSE 用‘ ’括起来的ASCII码。‘B‟,‘’ “”
多路选择器的VHDL描述
结构体表达 实体名 结构体名 【例】 ARCHITECTURE arch_name OF e_name IS [说明语句] BEGIN (功能描述语句) END ARCHITECTURE arch_name ;
[说明语句]包括在结构体中,用以说明和定义数据对象、数据类型、 元件调用声明等等。[说明语句]并非是必须的
增加ELSE语句,则 当条件不满足时, c<=„0’,则当执 行过a=1且b=1,输 出c=1后,输出会 变化,成为与关系。
多路选择器的VHDL描述
IF条件语句
格式3:IF 条件1 THEN 顺序执行语句 ELSIF 条件2 THEN 顺序执行语句 ELSIF不是ELSEIF …… ELSIF 条件n THEN 顺序执行语句 ELSE 顺序执行语句 END IF; 执行时,逐级判断条件,某个条件成立则执行后跟的所有顺序语句, 所有条件不成立,则执行ELSE后的语句。
相关主题