type-conversion - VHDL 连接不同类型
问题描述
我有以下现有的 FPGA 代码
fpga_avr32_data : INOUT STD_LOGIC_VECTOR(15 DOWNTO 0);
SIGNAL read_sensor : INTEGER;
TYPE meas_type IS ARRAY (7 DOWNTO 0) OF STD_LOGIC_VECTOR(11 DOWNTO 0);
TYPE meas_reg_type IS ARRAY (NATURAL RANGE <>) OF meas_type;
fpga_avr32_data <= "0000" & meas_reg(read_sensor)(read_channel)
--
我想用 read_sensor 的最低 4 个“位”替换“0000”,像这样
fpga_avr32_data <= read_sensor(3 DOWNTO 0) & meas_reg(read_sensor)(read_channel)
这可能吗 ?
问候
解决方案
对的,这是可能的。但不是你这样做的方式。read_sensor
是整数,fpga_avr32_data
而是 a STD_LOGIC_VECTOR
,所以必须先将整数转换为向量:
library ieee;
use ieee.numeric_std.all;
...
signal rsv: std_logic_vector(31 downto 0);
...
rsv <= std_logic_vector(to_signed(read_sensor, 32));
然后提取 4 个 LSB:
fpga_avr32_data <= rsv(3 DOWNTO 0) & meas_reg(read_sensor)(read_channel);
推荐阅读
- python - 在比较值时将来自一个数据帧的字符串添加到第二个数据帧的新列中
- flutter - Flutter,在另一个类中修改后发送并获取值
- sql - 如何优化高排序成本和扫描计数
- mediatr - 请求处理程序的 Mediatr 多态调度不起作用
- python - PyAutoGui 和 PyScreez
- git - VSCODE 中的源代码控制未显示我要添加到暂存状态的更改
- xamarin.forms - Xamarin.Forms:从选择器的对话框中突出显示选定的项目
- java - 如何检索列表
来自 android studio 中 API 的值 - ios - UICollectionView 支持拖放重新排序和上下文菜单
- javascript - 如果一个对象的实例没有对它的引用会发生什么?