关于VHDL语法

2019-03-25 07:28发布

        是这样,我原来用的芯片是Spartan-3AN 系列的XC3S700AN,现在换成了Spartan6 系列的XC6SLX16。换了之后原来在
XC3S700AN的跑的好好的程序现在编译不过去了,出现了如下图所示的错误:
P8X{97EURS`9IQZKSHV`08J.png
        acc0 和 val10 这两个变量都是std_logic_vector类型的,不同的是acc0 是32位的,而val10是16位的,所以这个错误是不是
由于我把32位的数据赋值给了一个16位的变量造成的,如果是该怎么修改呢。
此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
2条回答
gs001588
2019-03-25 14:34
< / 你这程序好高大上。std_logic_vector函数还是第一次见。
不知道哪个库,试不了。

但如果像你说的想把32位的数赋给16位的val10的话,那么你可以定义个32位的中间信号量val10_temp,赋完值后取val10_temp的低16位赋给val10即可。

signal  val10_temp  :   std_logic_vector(31 downto 0);

val10_temp <= 32位的数;
val10 <= val10_temp(15 downto 0);

一周热门 更多>