当前位置:文档之家› 位二进制全加器VHDL的设计

位二进制全加器VHDL的设计

并置操作符& 用于将单独的信号合并起来组成新的数组或
者总线 4、1位全加器的描述
半加器的描述 全加器的描述(层次设计)
半加器电路图 全加器电路图
▼半加器描述和语句
半加器逻辑功能真值表 ab 00 0 0 01 1 0 10 1 0 11 0 1
可使用语句描述真值表
1. 语句
语句的一般表式是:
<表达式> <选择值1或标识符1> => <顺序语句>; ... ; <顺序语句> ; <选择值2或标识符2> => <顺序语句>; ... ; <顺序语句> ; ...
1位二进制全加器的设计
2012-3-12
本节知识要点:
1、语句 表示多分支情况的选择语句,各分支无优先级。 与语句的区别。 2、元件例化语句(有2个语句组成) 用于层次设计,即在当前设计中调用一个已经设计好
的功能模块 语句:将一个设计实体定义为一个元件
语句: 用于元件调用(端口映射)。
3、标准逻辑矢量:( * *) 或者 ( * *) 表示一维数组或者总线
【例】
.<= a & b ; <= (1) ; <= (0) ; ()
"00" => <="00" ; "01" => <="01" ; "10" => <="01" ; "11" => <="10" ; ; ; 1;
【例】 1位二进制全加器顶层设计描述
; 1164;

作用:表示多分支情况的选择语句,各分支无优先级。 执行:每次启动语句,只选择执行其中一个分支的语句。
注意:(1)对所有的情况都要赋值,否则会综合成锁存器。 (2)语句只能在语句中使用。 (3)与语句的区别。
2. 标准逻辑矢量数据类型
在使用中,必须注明其数组宽度,即位宽,如: B : (7 0) --8位数 或 A :(1 4)--4位数
' = '1' Q1 <= Q1 + 1 ; 右边两个不同数据类型的数相加
; ;
Q <= Q1 ; ;
❖ 内部信号无传输方向限制; ❖ 重载:对操作符赋予(即加载)新的功能。 ❖ 运算符重载:调用运算符重载函数后,不同类型
元件名 (端口名表) ; 文件名 ;
元件例化语句的第二部分则是此元件引脚与当前设计实体(顶层文件) 中的具体信号连接起来。语句的表达式如下:
例化名 : 元件名 ( [端口名 =>] 连接端口名,...);
注意连接顺序:左边表示元件引脚名,右边表示与该引脚相连的实际 信号名。
课外练习:
采用调用方法设计8位全加器 。 提示:调用8次,将8个1位全加器串连
❖ 正整数,不包含0;
❖ 都定义在标准程序包中,是默认打开的,所以 不需要进行库的声明语句。
4.4 计数器设计
▼ 计数器设计的另一种表述
【例】 ;
1164 ; ;
4 (: ;
Q: (3 0)) ; ;
【例】 。。。。。。。。。。。。。。。
4 Q1 : (3 0);
--Q1为内部信号,无传输方向限制 ()
❖模式 ❖当输出的量内部需要用时,必须定义为类型。 ❖计数器的电路结构 ❖一个加法器 ❖一个锁存器 ❖ Q<1对应的电路解释(工作过程) ❖变量 ❖在进程语句内部定义和使用 ❖省略赋值符 ❖( => X)
❖ 十进制计数器的设计 ❖ 使能型号和复位信号 ❖ 内部变量的定义 ❖ 进位信号 ❖ 移位寄存器的设计 ❖ 并行置位 ❖ 移位寄存器的描述 ❖ 移位输出
4 计数器设计
【例】 4 (: ; Q: ; 4
15 0);
()
' = '1' Q <= Q + 1 ; --两边的数据类型相同 ; ; ;
4.4 计数器设计
▼ 4位加法计数器
表面上具有双向端口的功能,但实际上其输入功能是 不完整的,它只能将自己输出的信号再反馈回来,并不含 有的功能。
表式Q <= Q + 1的右项与左项并非处于相同的时刻内, 对于时序电路,除了传输延时外,前者的结果出现于当前 时钟周期;后者,即左项要获得当前的Q + 1,需等待下 一个时钟周期。
▼ 整数类型
4.4 计数器设计
1
十进制整数
0
十进制整数
35
十进制整数
10E3
十进制整数,等于十进制整数1000
169#
十六进制整数,等于十六进制整数D9H
8#720#
八进制整数,等于八进制整数720
2#11010010# 二进制整数,等于二进制整11010010B
例 Q : 15 0;
❖ 自然数,包含0和所有正整数;
起来。
4 计数器设计
❖ 知识要点 ❖ 计数器:广泛用于控制。 ❖ 整数:, 要定义范围,便于综合器确定线宽。 ❖ 表示方法:如2,35,16#d9#, 2#11001#等。 ❖ 自然数和正整数。 ❖ 操作符的重载函数 ❖ 重载:给操作符赋予新的功能,使不同数据类型的数据可以混
合使用 ❖ 使用重载函数:
c <= a b ; 1;
【例】 ; 半加器描述(1) 1164;
(a, b : ; , : );
; 1
<= (a ( b)) ; <= a b ; 1;
【例】 ; 半加器描述(2) 1164;
(a, b : ; , : );
;
【例】 1 : (1 0) ;
<= a & b ; ()
"00" => <='0'; <='0' ; "01" => <='1'; <='0' ; "10" => <='1'; <='0' ; "11" => <='0'; <='1' ; => ; ; ;
(,, : ; , : );
;
1
( a,b : ; , : ); ; 2a (a,b : ;
c : ); ; d,e,f : ;
u1 : (>,>,>d,>e); u2 : (>e, >, >f,>); u3 : 2a (>d, >f, >);
1;
▼全加器描述和例化语句
元件例化语句由两部分组成,第一部分是将一个现成的 设计实体定义为一个元件,语句的功能是对待调用的元件 作出调用声明,它的最简表达式如下所示:
3. 并置操作符
以下是一些并置操作示例:
a : (3 0) ;
d : (1 0) ;
...
a <= ‘1’ ‘0’ d(1) ‘1’ ; 元素与元素并置, 并置后的数组长度为4
...
a 置符
d = "101011" ... –- 在条件句中可以使用并
【例】 或门逻辑描述 1164; 2a (a, b ; c : ); 2a; 2a
相关主题