我是vhdl的新手,我必须将两个无符号向量相乘,就像我们在高scool中所做的那样
所以我写了程序并且它编写了剂量但是结果并不好。
逻辑看起来还不错,但是任何一个人都可以帮忙。 我无法知道如何在此处放置代码,因此请查看附带的图片。
THX
答案 0 :(得分:2)
编写VHDL时,首先需要考虑硬件。尽管各种语句可能与您从其他语言中看到的类似,但其中许多语句的行为方式不同,因为它们映射到硬件并且并行而不是按顺序进行评估。
例如,VHDL中的for
循环不会遍历循环,而是复制循环内容并并行地评估所有这些循环。因此,您积累temp
的想法将无效,因为temp1
的所有值都可以同时提供,而不是一个接一个地提供。
处理乘法的简单方法是使用*
运算符,因为许多合成器会选择它并自动实例化必要的硬件。我认为这是某种形式的练习,你需要自己实现这些功能 - 所以只需抛弃for
循环并将中间结果存储在自己的变量中,然后将它们全部添加到最后。 / p>