2012-05-17 64 views
0

My code我是一個新的VHDL和我有相乘兩個無符號矢量就像大家都在高scool做VHDL multiplicationof 2號

,所以我寫的程序,它的劑量編譯,但效果並不好。

邏輯看起來不錯,但仍然無法工作任何人都可以幫助。 我無法得到如何在這裏放置代碼,所以請看附加的圖像。

THX

+0

只需粘貼您的代碼,突出顯示它並使用工具欄在其上放置「代碼」格式。當你處於這種狀態時,請告訴我們一些細節上的「不起作用」。 –

回答

2

當寫VHDL你首先需要思考的硬件。儘管各種語句可能看起來與您從其他語言中所瞭解的類似,但其中許多表現方式不同,因爲它們映射到硬件並且並行評估而非順序評估。

例如,for VHDL循環不會遍歷循環,而是複製循環內容並並行計算所有這些內容。因此,您積累temp的想法將不起作用,因爲所有temp1的值都可以同時使用,而不是一個接一個地使用。

處理乘法的簡單方法是隻使用*運算符,因爲許多合成器會選擇它並自動實例化必要的硬件。我認爲這是某種形式的練習,但在需要自己實現這些功能的地方 - 只需將for循環放在一起並將中間結果存儲在自己的變量中,然後將它們全部添加到最後。