Re: 請問ALU單元的verilog寫法

看板Electronics作者 (der Wille zur Macht)時間19年前 (2007/03/18 10:40), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串3/3 (看更多)
※ 引述《deathcustom (DSM......)》之銘言: : 標題: Re: 請問ALU單元的verilog寫法 : 時間: Sat Mar 10 09:19:42 2007 : : ※ 引述《teyurd (......)》之銘言: : : 請問假如要寫一個ALU電路, 採用以下寫法(verilog) : : ++++++ : : + + : : A1 --->+ + ---> B : : A2 --->+ + : : ++++++ : : | | : : | | : : C : : 因為ALU是組合電路,所以採用一個很大的always來寫 , : : 其中 A 是input , B是 output : : C是選擇要輸出到output的運算結果 : : 因為運算有很多種,例如加減乘,shift,and,xor,or...等等 : : 所以必需要assign 很多運算result來表示這些運算結果 : : 如: : : assign mul_result=A1*A2 : : assign xor_result=A1^A2 : : . : : . : : . : : always@(A1 or A2 or C) : : begin : : case C : : . : : . : : . : : . : : endcase : : end : : 因為運算好像還蠻多的 , 所以可能會合成一個很大的MUX : : 假設每條運算結果是32 bit, 而運算種類有20種 : : 那內部可能會有一個input至少是20*32條線以上的mux : : 請問這種寫法在layout上會有問題嗎? 例如lvs上的問題? : : 理論上是不會有這種問題 : : 你要面對的問題是面積跟時間的考量 : : 如果你要時間快,那每一種運算都要單獨寫 : : 如果要面積小的話 : : 有些運算可以robust : : -- : 所謂理論上是因為現在的數位電路都直接用HDL寫 : : 所以根本沒那個問題,design compiler能做出來就沒問題 : : 如果你寫完之後要自己LAYOUT的話~~~那我就不知道了XDDD : : -- : ※ 發信站: 批踢踢實業坊(ptt.cc) : ◆ From: 220.135.83.97 這樣寫法的hw description, 經過例如hdl compiler (GTECH translate) 通常是擺上mux, (我不確定,我也不這樣寫) logic mapping及optimization並不會改變這樣的基本架構 所以我認為最好的方法就是 more detail design specification data-path進一步分析和化簡 因為許多arithmetics/logic op.s 彼此有data-path dependency關係 別只寫個case(c) 並期望synthesiser 有多聰明 至於layout? 應該是沒什麼問題吧, 我不清楚 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.141.233.117 ※ 編輯: yenci 來自: 220.141.233.117 (03/18 10:45)
文章代碼(AID): #15_AQlAu (Electronics)
文章代碼(AID): #15_AQlAu (Electronics)