学会慢慢飞 发表于 2013-5-16 11:19:48

关于VHDL减法运算的问题,求解决


在use IEEE.STD_LOGIC_UNSIGNED.ALL;条件下
对a, b, c :STD_LOGIC_VECTOR (7 downto 0);
和 x: STD_LOGIC_VECTOR (8 downto 0);
进行x<= a+b-c;的运算,应该怎样实现,符号位怎么保证,谢谢各位大侠
另外好像modelsim中的数据都是以signed的形式显示的,那么怎样检查结果对不对呢,
第一次来,请给位大侠多多指教,谢谢

至芯兴洪 发表于 2013-5-16 22:53:25

在modelsim至于如何显示可以通过显示格式设置,与结果无关。
可以在变量前加$signed,可以调用加法器核实现。也可以通过补码实现、还可以根据原理代码实现

学会慢慢飞 发表于 2013-5-17 09:25:19

至芯兴洪 发表于 2013-5-16 22:53 static/image/common/back.gif
在modelsim至于如何显示可以通过显示格式设置,与结果无关。
可以在变量前加$signed,可以调用加法器核实现 ...

use IEEE.STD_LOGIC_UNSIGNED.ALL;条件下
对a, b, c :STD_LOGIC_VECTOR (7 downto 0);
和 x: STD_LOGIC_VECTOR (8 downto 0);
进行运算x<= a+b-c;
请问以上语句是否正确?x是否会溢出,有减法运算,x的符号怎样确定?
若是x<=a-c;结果又会怎样呢?
刚刚起步,还有好多不懂,请指教,另外,请问你有vhdl的交流群吗,有的话给我一个吧,在网上没有找到,谢谢了
祝工作、学习都开心

至芯兴洪 发表于 2013-5-17 23:58:33

以上写法就是简单的二进制运算,不存在符号位,会有溢出现象。在同级运算中,为了使综合电路更明确,可以在运算变量之间加上括号。X<=a-c也是普通的二进制运算;关于有无符号的运算FPGA实现,数据信号处理的FPGA实现一书里面有详细说明,你可以先看看书;
我没有VHD的交流群。
页: [1]
查看完整版本: 关于VHDL减法运算的问题,求解决