Re: 請問ALU單元的verilog寫法
看板Electronics作者yenci (der Wille zur Macht)時間19年前 (2007/03/18 10:40)推噓0(0推 0噓 0→)留言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)
討論串 (同標題文章)