Chip123 科技應用創新平台

標題: 請問任意餘數產生器要如何設計 - [懸賞 RDB 10 元] [打印本頁]

作者: masonchung    時間: 2007-1-25 02:34 PM
標題: 請問任意餘數產生器要如何設計 - [懸賞 RDB 10 元]
Verilog " % "餘數運算 無法合成硬體
+ u4 b) a) C- Z$ p5 l) v) _7 J5 v有人知道可合成的"任意餘數產生器"要如何設計嗎?. _! l. H1 K& ^
亦即求 X % Y (Y的值不固定,X ,Y均假設小於128)
  u# C1 z+ b3 S9 D  k9 r  U$ @5 _1 f% \& J+ }" p7 v( N/ C/ }  m- l
[ 本帖最後由 masonchung 於 2007-1-25 02:42 PM 編輯 ]
作者: tommywgt    時間: 2007-1-30 09:49 PM
標題: 餘數產生器其實就是個除法器
如題, 所以使用除法器就行了
7 L" v2 v  p; i7 \( c! D9 `% H在fpga的tool都有內建不用錢的lib
% `+ _. z9 ]: p& B8 {7 [在dc下可以呼叫design well的除法器
* e: `! x' \9 D9 E想自己寫的話有二個方法你可以試試看 1)長除法 (就是國小敎的那個除法數學) 2) Radix-4除法器+ H3 k7 t  a# z6 X  ^. a! Y. \
  x4 C5 R+ n9 ~  ]0 F5 D: M. d1 Q; f
以上的方法我都有試過, 你也可以試試看, 一定可行的, 試完要給RDB哦!
作者: masonchung    時間: 2007-1-30 09:58 PM
恩,我可能沒說明清楚
# a, D; B$ n- V5 y重點是=> 除數(Y)是個不固定長度(每次計算要能調整bit數,可能因外來條件而變)
/ L4 y7 H- n1 F' K這樣的(餘數產生器)除法器可以寫的出來嗎
# x! ~/ |; k0 C/ \: R) S( T, Q' L3 \9 g1 u2 a: m
[ 本帖最後由 masonchung 於 2007-1-30 10:08 PM 編輯 ]
作者: tommywgt    時間: 2007-1-30 10:23 PM
標題: 答案還是沒有太大的差別
如題, 我可以再補充多一點:
1 t* ?4 z9 W& m, Z. P- P自己寫的話我還是建議: 1)長除法 (就是國小敎的那個除法數學) 2) Radix-4除法器
' c, s) x- V+ W4 F1 a" z0 x1 _7 u, S: n" Y; G
在synsizable的code不可能故意寫很大的code等著用, 所以呢, 我這先提出二個方案
( Z1 T& b9 Y' L% u$ S( B0 y1)
0 r5 h9 s0 h6 F. _$ a- m8 n4 r在verilog下有個東東叫'define
; q- y: ?) R6 ?  r9 C2 }5 n在vhdl中有個東東叫constant的7 h4 Y. V0 s0 p6 x; W4 W5 G" W
透過宣告來知道word legth
8 R1 m7 D/ ?1 j/ H( J- y一定可以的7 c8 L' c; w& X5 N6 }/ h

  F$ J& s1 e- a, m( x5 |* w3 Q2)* c& h* M; s- k
在使用這個自己寫的lib時用generic (vhdl)或parameter (verilog)傳入長度, 在code裡就可以判斷了1 ?; R: o1 \) D' Y# L4 ]
6 q, m! k4 O; `
這時for跟while這些不常用的指令就很好用了, 而且一定可以合出真正的硬體的
作者: masonchung    時間: 2007-1-31 09:43 PM
對了請問一下用for 迴圈去做- u: [, P, ~8 P2 Z& s  }
這樣如果除數(Y)有(7~1)個bit可變化% y: h% }5 |( R. E4 [3 ^
是不是會產生7個除法器 (7bits DIV,6bits DIV,...,2bits DIV,1 bit DIV)?: k8 K1 L$ _2 ]7 M
還是128個除法器?. c4 _3 Y7 W, k  V. E/ P5 E3 y: ~
有無更省gate count的做法呢?
作者: tommywgt    時間: 2007-2-1 02:21 PM
在二進位的長除法其實只有比大小而已
; S) q1 S1 @3 h! W用FOR去比的次數就是你的被除數BIT數(不是除數喔)而不是每一次都產生一個完整的除法器2 s0 u$ z9 o' S6 E% {" p; N2 C

5 N9 O" X- {* \# R9 J, m$ V& i/ f; Z長除法做出來後你可以試一下RADIX-4除法器, gate count比較小, 速度也比較快...
作者: tommywgt    時間: 2007-2-8 04:41 PM
這個問題還是沒有解決嗎???
作者: masonchung    時間: 2007-2-8 04:58 PM
謝謝 tommywgt 大: b, b. e) J$ B  K! @: a6 y
我想出長除法的code囉




歡迎光臨 Chip123 科技應用創新平台 (http://chip123.com/) Powered by Discuz! X3.2