VHDL:conv_std_logic_vector的用法
2017-12-04 19:40
309 查看
std_logic_arith程序包里定义的数据转换函数:conv_std_logic_vector(A,位长)--INTEGER,SINGER,UNSIGNED转换成std_logic_vector。
由于参考书上都没有具体说明,本以为是将原来的数据类型按位矢量输出,结果按这种用法编写的滤波器在接实际信号时,却使用输出图像全部反色,经modelsim波形仿真之后,才发现滤波器结构是正确的,可是调用了转换函数之后,结果非预期效果。
对该转换函数做了测试之后,才发现:该函数的转换结果是将被转换的数据先转换成2进制补码形式,然后取其低“位长”,作为输出。
如:a<=conv_std_logic_vector(-79,6)----(-79)2c=(10110001)
b<=conv_std_logic_vector(-2,6)-----(-2)2c=(11111110)
c<=conv_std_logic_vector(100,6)-----(100)2c=(01100100)
输出结果:a=110001,b=111110,c=100100。
由于参考书上都没有具体说明,本以为是将原来的数据类型按位矢量输出,结果按这种用法编写的滤波器在接实际信号时,却使用输出图像全部反色,经modelsim波形仿真之后,才发现滤波器结构是正确的,可是调用了转换函数之后,结果非预期效果。
对该转换函数做了测试之后,才发现:该函数的转换结果是将被转换的数据先转换成2进制补码形式,然后取其低“位长”,作为输出。
如:a<=conv_std_logic_vector(-79,6)----(-79)2c=(10110001)
b<=conv_std_logic_vector(-2,6)-----(-2)2c=(11111110)
c<=conv_std_logic_vector(100,6)-----(100)2c=(01100100)
输出结果:a=110001,b=111110,c=100100。
相关文章推荐
- VHDL中的数据转换函数conv_std_logic_vector的用法
- C++中 std::vector用法
- STD::vector 用法笔记
- std::vector : 用法与技巧
- VHDL细节笔记(含std_logic Libraries标准库的技术手册)
- std::vector: 用法和技巧
- std::vector : 用法与技巧
- std::vector : 用法与技巧
- FPGA学习之 std_logic_vector与std_logic的区别
- Examples of VHDL Conversions Numeric_Std and Std_Logic_Arith
- c++ std::sort用法详细(对std::vector<int>, 对std::vector<std::string>, std::vector<char>等等)
- How Do Perform STD_LOGIC_VECTOR Addition Using IEEE.NUMERIC_STD?
- std::vector用法
- std::vector用法
- c++ std vector用法介绍
- std::vector中erase的用法误区
- 小心std::vector的一个错误用法!
- std::vector : 用法与技巧 转
- std::vector用法
- std::vector容器的用法