为了账号安全,请及时绑定邮箱和手机立即绑定

你好,请问在VHDL中如何编写“符号拓展” 函数?求解释?

你好,请问在VHDL中如何编写“符号拓展” 函数?求解释?

Go C
qq_笑_17 2021-09-16 10:11:01
类似于这样,ext(b)是一个”sign-extends"。b是一个8 bits 的input. 如何将8bit 的2s'c 编写成9bit 的?
查看完整描述

2 回答

?
慕娘9325324

TA贡献1783条经验 获得超4个赞

IEEE标准库numeric_std提供位宽扩展函数resize
用法举例如下

library ieee;
use ieee.numeric_std.all;
...
...
signal a: std_logic_vector(7 downto 0);
signal b: std_logic_vector(8 downto 0);
...
b<= std_logic_vector(resize(signed(a), b'length));
...

另外还有两个函数SXT/EXT 由std_logic_arith提供 用起来更简便一些 但它们不是标准库函数
例如
USE IEEE.STD_LOGIC_ARITH.ALL;
b <= SXT(a, b'LENGTH);



查看完整回答
反对 回复 2021-09-23
?
慕神8447489

TA贡献1780条经验 获得超1个赞

给你几个例子吧:很简单!!!
5 rem 3 = 2
(-5) rem 3 = -2
5 rem (-3) = 2
(-5) rem (-3) = -2
所得结果赋给一个信号或变量就行。。。
eg:
signal m:integer;
m<=5 rem 3;

查看完整回答
反对 回复 2021-09-23
  • 2 回答
  • 0 关注
  • 476 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信