Chip123 科技應用創新平台

 找回密碼
 申請會員

QQ登錄

只需一步,快速開始

Login

用FB帳號登入

搜索
1 2 3 4
查看: 13991|回復: 7
打印 上一主題 下一主題

[問題求助] 請問任意餘數產生器要如何設計 - [懸賞 RDB 10 元]

[複製鏈接]
跳轉到指定樓層
1#
發表於 2007-1-25 14:34:31 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
Verilog " % "餘數運算 無法合成硬體
- R- W1 t) f( V" [+ F有人知道可合成的"任意餘數產生器"要如何設計嗎?- K. u! D5 r6 ^$ r0 [
亦即求 X % Y (Y的值不固定,X ,Y均假設小於128)! u! B: c4 C" N7 R7 F, o4 c0 O& [
. p; Z0 Q& D& {' o, [9 n  F
[ 本帖最後由 masonchung 於 2007-1-25 02:42 PM 編輯 ]
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享分享 頂 踩 分享分享
2#
發表於 2007-1-30 21:49:24 | 只看該作者

餘數產生器其實就是個除法器

如題, 所以使用除法器就行了7 S2 L% I* e: v# a% z* S
在fpga的tool都有內建不用錢的lib) Q5 c  E% h. k& w9 a
在dc下可以呼叫design well的除法器% Y1 a& A7 I* b- j! {/ o5 d
想自己寫的話有二個方法你可以試試看 1)長除法 (就是國小敎的那個除法數學) 2) Radix-4除法器0 v  Z3 F( h# ]  ~
% Y2 G( f( G2 w: V6 F8 v1 R, ]' W
以上的方法我都有試過, 你也可以試試看, 一定可行的, 試完要給RDB哦!
3#
 樓主| 發表於 2007-1-30 21:58:46 | 只看該作者
恩,我可能沒說明清楚3 O( r$ P0 H/ {( J9 q* ^4 X
重點是=> 除數(Y)是個不固定長度(每次計算要能調整bit數,可能因外來條件而變)
/ [$ @9 ?/ ]1 Z" \9 E9 P) L: e這樣的(餘數產生器)除法器可以寫的出來嗎
: V' S4 t/ }: S. v3 _+ K) E- Y" W3 O$ B1 G( v7 A) t
[ 本帖最後由 masonchung 於 2007-1-30 10:08 PM 編輯 ]
4#
發表於 2007-1-30 22:23:10 | 只看該作者

答案還是沒有太大的差別

如題, 我可以再補充多一點:
3 \* [4 f; U7 @/ ]$ g# M- q% u# d自己寫的話我還是建議: 1)長除法 (就是國小敎的那個除法數學) 2) Radix-4除法器
/ r. w/ L2 G0 [' h% R+ t
- i2 o& G. K3 ]1 w- ?" j( O5 g3 F在synsizable的code不可能故意寫很大的code等著用, 所以呢, 我這先提出二個方案
: c7 _4 G- @/ C1)  S' V0 O7 W  O' \( q
在verilog下有個東東叫'define5 a8 Y8 R' V0 R: r" d
在vhdl中有個東東叫constant的( K7 j4 X, y3 f, ]: M* F" [+ y
透過宣告來知道word legth
1 H+ P; I* m* t1 Y# j$ J一定可以的9 c* ]# Y9 s1 {% |" d' U' T
0 L! {' [+ O+ ?$ s5 j7 J
2)
  L) I* X3 M- T% k( ^0 Q在使用這個自己寫的lib時用generic (vhdl)或parameter (verilog)傳入長度, 在code裡就可以判斷了
: {4 w# w" E9 e/ \0 t% }9 J( x! L( Y9 A7 k  Q2 v8 ~
這時for跟while這些不常用的指令就很好用了, 而且一定可以合出真正的硬體的

評分

參與人數 1 +3 收起 理由
masonchung + 3 先感謝啦!我去試試看^^

查看全部評分

5#
 樓主| 發表於 2007-1-31 21:43:11 | 只看該作者
對了請問一下用for 迴圈去做) D" {8 y; ^+ R" _2 z$ S
這樣如果除數(Y)有(7~1)個bit可變化% T- U: C6 k  @' V9 K+ U$ v9 J+ N) d* S
是不是會產生7個除法器 (7bits DIV,6bits DIV,...,2bits DIV,1 bit DIV)?, B" V5 c4 r2 \5 y; {0 w; S  t
還是128個除法器?
* J1 v% ?2 b4 Z6 i有無更省gate count的做法呢?
6#
發表於 2007-2-1 14:21:25 | 只看該作者
在二進位的長除法其實只有比大小而已0 D; e: D& l" r
用FOR去比的次數就是你的被除數BIT數(不是除數喔)而不是每一次都產生一個完整的除法器
2 j$ M) I) \) _8 x  C2 f8 p6 A5 h* ]7 S* Z  c- e" K
長除法做出來後你可以試一下RADIX-4除法器, gate count比較小, 速度也比較快...
7#
發表於 2007-2-8 16:41:32 | 只看該作者
這個問題還是沒有解決嗎???

評分

參與人數 1Chipcoin +10 收起 理由
masonchung + 10 優質答案!

查看全部評分

8#
 樓主| 發表於 2007-2-8 16:58:48 | 只看該作者
謝謝 tommywgt 大
' ~2 r* ^, \" g1 h" p$ R" Z我想出長除法的code囉
您需要登錄後才可以回帖 登錄 | 申請會員

本版積分規則

首頁|手機版|Chip123 科技應用創新平台 |新契機國際商機整合股份有限公司

GMT+8, 2024-6-17 09:27 PM , Processed in 0.131516 second(s), 18 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回復 返回頂部 返回列表