Chip123 科技應用創新平台

 找回密碼
 申請會員

QQ登錄

只需一步,快速開始

Login

用FB帳號登入

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

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

[複製鏈接]
跳轉到指定樓層
1#
發表於 2007-1-25 14:34:31 | 只看該作者 回帖獎勵 |正序瀏覽 |閱讀模式
Verilog " % "餘數運算 無法合成硬體
6 H" J2 [  p& F# {+ `有人知道可合成的"任意餘數產生器"要如何設計嗎?
+ C. P6 ]2 O% G3 E( N3 s) }' o亦即求 X % Y (Y的值不固定,X ,Y均假設小於128)- x9 P$ F+ a  Z; c8 D
+ r7 n3 _, K5 I
[ 本帖最後由 masonchung 於 2007-1-25 02:42 PM 編輯 ]
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享分享 頂 踩 分享分享
8#
 樓主| 發表於 2007-2-8 16:58:48 | 只看該作者
謝謝 tommywgt 大+ E: ~. x$ B& t  i! y) w$ O; p
我想出長除法的code囉
7#
發表於 2007-2-8 16:41:32 | 只看該作者
這個問題還是沒有解決嗎???

評分

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

查看全部評分

6#
發表於 2007-2-1 14:21:25 | 只看該作者
在二進位的長除法其實只有比大小而已4 p- u, c  Z1 |5 I
用FOR去比的次數就是你的被除數BIT數(不是除數喔)而不是每一次都產生一個完整的除法器
/ h& Z- f! N- S7 o! _: D
) b; ^  n, z3 E% v  \3 i: d* o長除法做出來後你可以試一下RADIX-4除法器, gate count比較小, 速度也比較快...
5#
 樓主| 發表於 2007-1-31 21:43:11 | 只看該作者
對了請問一下用for 迴圈去做: H/ D- p0 T4 q
這樣如果除數(Y)有(7~1)個bit可變化
& M; \7 ]- N) v9 Y  ~是不是會產生7個除法器 (7bits DIV,6bits DIV,...,2bits DIV,1 bit DIV)?
( m: Q/ P9 d% e還是128個除法器?  c# D7 E. E: G
有無更省gate count的做法呢?
4#
發表於 2007-1-30 22:23:10 | 只看該作者

答案還是沒有太大的差別

如題, 我可以再補充多一點:/ ^, Q# w  D: |
自己寫的話我還是建議: 1)長除法 (就是國小敎的那個除法數學) 2) Radix-4除法器
4 A2 D- N4 V2 K9 g% D3 N- i
, C" D5 Y9 }) o' N在synsizable的code不可能故意寫很大的code等著用, 所以呢, 我這先提出二個方案7 U! e: K+ b- Y4 W
1)
' t- d4 w- P( M$ Z& v  Y2 }在verilog下有個東東叫'define
  y. R5 C9 p2 a4 J. b3 G& T$ E0 M在vhdl中有個東東叫constant的- s2 d* h) s2 q- X
透過宣告來知道word legth
& v1 N5 ]6 m* T. V  c一定可以的' X5 p! Z$ p, J3 C) L- m. k: ]7 F  e

7 X. t7 T9 b( F3 ~: ]4 ~' I1 N+ P2)( w- d& g! C8 P; a9 \0 u5 }! M- T$ j
在使用這個自己寫的lib時用generic (vhdl)或parameter (verilog)傳入長度, 在code裡就可以判斷了
/ Y& X' p0 k5 n, }) U5 A
8 |. a) a7 a8 l+ e這時for跟while這些不常用的指令就很好用了, 而且一定可以合出真正的硬體的

評分

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

查看全部評分

3#
 樓主| 發表於 2007-1-30 21:58:46 | 只看該作者
恩,我可能沒說明清楚
4 j' L7 o4 s( w重點是=> 除數(Y)是個不固定長度(每次計算要能調整bit數,可能因外來條件而變)
0 a4 T+ r7 b4 I$ M$ s這樣的(餘數產生器)除法器可以寫的出來嗎
& A+ f. E( `- J& U4 O% ^8 P+ c! ^4 f" W$ p4 U. C7 Z: t- H9 A2 j
[ 本帖最後由 masonchung 於 2007-1-30 10:08 PM 編輯 ]
2#
發表於 2007-1-30 21:49:24 | 只看該作者

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

如題, 所以使用除法器就行了8 u+ `  a. c' D% d
在fpga的tool都有內建不用錢的lib, x3 P# }! \/ M0 h2 l+ E
在dc下可以呼叫design well的除法器
/ B; c5 Q3 q8 N9 D: G想自己寫的話有二個方法你可以試試看 1)長除法 (就是國小敎的那個除法數學) 2) Radix-4除法器; s! G5 Q. w$ f; n! R8 y

0 c3 @8 T- z$ }& D以上的方法我都有試過, 你也可以試試看, 一定可行的, 試完要給RDB哦!
您需要登錄後才可以回帖 登錄 | 申請會員

本版積分規則

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

GMT+8, 2024-11-16 10:51 AM , Processed in 0.166009 second(s), 19 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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