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 y
1)
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 Q
2)
* 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