关于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条回答
dj狂人
2019-03-25 17:23
gs001588 发表于 2017-4-1 11:32
你这程序好高大上。std_logic_vector函数还是第一次见。
不知道哪个库,试不了。

但如果像你说的想把32 ...

代码是上一个工程师留下来的。
std_logic_vector  不是关键词而已吗,std_logic_vector(x) 这种用法我的理解是强制转换类型(C语言的思维方式),不懂对不对。
“但如果像你说的想把32位的数赋给16位的val10的话,那么你可以定义个32位的中间信号量val10_temp,赋完值后取val10_temp的低16位赋给val10即可。
” 我试试,不过感觉能行。
谢谢了

一周热门 更多>