Re: [問題] quartus II 的問題

看板Electronics作者 (Trai)時間17年前 (2007/02/14 00:40), 編輯推噓1(100)
留言1則, 1人參與, 最新討論串7/12 (看更多)
※ 引述《acelp (未來,一直來一直來)》之銘言: : 注意coding style 一般除非寫code的觀念有錯 : 不然不會有合成成latch的機會 : 我自己是用Xilinx 自己把log file看一下應該不太困難 : 我記得就算是combination block sensitivity list沒列全tool應該會報出來 : 至於coding style可以看VCS的user guide之類的 : 我記得有一個chapter都在講電路合成的概念 : 間接會講到不同的rtl會有racing或是latch等不預期的結果 : ※ 引述《invalid (everlasting)》之銘言: : : 順便建議一下你的code,latch應該是可以避免的 : : 簡單來說要避免latch,只要把所有可能發生的情況都列出來就好了 : : (沒有變化的話寫A<=A也好,就是不要不要寫) : : 還有combination block的話sensitivity list要寫完全 : : (所以我比較喜歡用assign) 感謝各位的回答 我還是持續在試驗不同的方法 不過目前有幾個試驗的結果 1. buffer部分,把array展開為16個獨立的register,並用一個MUX來選擇它們 作為OP。實驗後的結果錯誤率與使用array一樣。我猜應該說明了兩者合成 的結果是相同的,也就是register前後合成了很大的MUX。 2. 原本做為array index 的counter,後來發現quartusII 自動把它map到自己的IP 還是library "lpm_counter",為了避免使用它的counter我用gate自己組counter 的加法器,成功避免他map到lpm_counter。換掉counter之後錯誤率明顯下降。 1200次運算約錯0~20次,所以我覺得問題可能出在餵OP這邊。 目前還在將程式移到modelsim,與撰寫testbench,RTL sim完成後會繼續做synthesis 後的simulation,但不知道這樣做意義大不大,很擔心做白工,問題最後還是沒解決。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.113.89.1

02/14 01:32, , 1F
後模擬很重要~意義也很大~不會做白工的~~
02/14 01:32, 1F
文章代碼(AID): #15qUd_of (Electronics)
討論串 (同標題文章)
文章代碼(AID): #15qUd_of (Electronics)