<VHDL>变量向量如何做加法?
答案:2 悬赏:0 手机版
解决时间 2021-02-23 02:52
- 提问者网友:聂風
- 2021-02-22 20:24
<VHDL>变量向量如何做加法?
最佳答案
- 五星知识达人网友:你哪知我潦倒为你
- 2021-02-22 21:31
信号不能做加法运算,需要画出真值表计算出逻辑运算的等式,然后用与或非门电路来实现。
举个例子:
如果想算:C=A+B --C是2bits,A,B是1bit
那么画表格:
0 1
0 00 01
1 01 10
上表横行是A,竖行是B,中间的是C
那么C(0)=AB(非)+A(非)B
C(1)=AB
所以在VHDL中可以写成:
C(0)
举个例子:
如果想算:C=A+B --C是2bits,A,B是1bit
那么画表格:
0 1
0 00 01
1 01 10
上表横行是A,竖行是B,中间的是C
那么C(0)=AB(非)+A(非)B
C(1)=AB
所以在VHDL中可以写成:
C(0)
全部回答
- 1楼网友:夜风逐马
- 2021-02-22 22:48
信号不能做加法运算,需要画出真值表计算出逻辑运算的等式,然后用与或非门电路来实现。
举个例子:
如果你想算:C=A+B --C是2bits,A,B是1bit
那么画表格:
0 1
0 00 01
1 01 10
上表横行是A,竖行是B,中间的是C
那么C(0)=AB(非)+A(非)B
C(1)=AB
所以在VHDL中可以写成:
C(0)<=(A AND (NOT B)) OR ((NOT A) AND B);
C (1) <=A AND B;追问我添加了USE ieee.std_logic_unsigned.all;库函数,是可以对向量信号进行加减运算的,用过了,没问题。但是换到变量向量就不行了。追答好吧- -难道是记错了。。。不过这样确实可以计算向量,就是太麻烦了。。。
为什么signal下面那两个都用的变量赋值的:= .....
举个例子:
如果你想算:C=A+B --C是2bits,A,B是1bit
那么画表格:
0 1
0 00 01
1 01 10
上表横行是A,竖行是B,中间的是C
那么C(0)=AB(非)+A(非)B
C(1)=AB
所以在VHDL中可以写成:
C(0)<=(A AND (NOT B)) OR ((NOT A) AND B);
C (1) <=A AND B;追问我添加了USE ieee.std_logic_unsigned.all;库函数,是可以对向量信号进行加减运算的,用过了,没问题。但是换到变量向量就不行了。追答好吧- -难道是记错了。。。不过这样确实可以计算向量,就是太麻烦了。。。
为什么signal下面那两个都用的变量赋值的:= .....
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯