Chip123 科技應用創新平台

 找回密碼
 申請會員

QQ登錄

只需一步,快速開始

Login

用FB帳號登入

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

[問題求助] 如何在RAM裡搜尋資料

[複製鏈接]
跳轉到指定樓層
1#
發表於 2008-4-27 19:45:57 | 只看該作者 回帖獎勵 |正序瀏覽 |閱讀模式
小弟使用verilog寫一個檔案要將1000個資料輸入到RAM裡,現在要找RAM裡的二筆資料為71(第I筆),第I+188筆資料也為71,3 V! K  n3 i* K% u/ [4 b6 v
如果找到就開始輸出RAM裡的資料,現在問題來了" ?) \- R- D1 }# I  E+ T
我要下什麼語法,才有法子去搜尋RAM裡的資料?
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享分享 頂 踩 分享分享
8#
 樓主| 發表於 2008-4-29 08:33:43 | 只看該作者
原帖由 kevin 於 2008-4-28 08:47 PM 發表 8 k5 \0 U6 k7 d6 n4 j1 ~, a2 u
如果用在FPGA design的話,可採用CAM(Content Addressable Memories)來比對data(即=71),CAM 做input data(=71) 的 search,當match時,則輸出match的address.速度很快.
  J2 f$ A, \) f( M8 c+ h
- A7 W* U2 v: h- Y! ?  ^: E) K3766
/ F/ T, ], q4 R! s& T" x* H8 @4 J' G% O- `+ B$ e
再配合一些control logic即可達到目的 ...

+ N0 N! P( w  N2 A' a! g
4 S% ?! V7 |7 A: ~( `+ c# `殘念,我是使用@ltera cyc1one 系列的板子,無法使用CAM,不過謝謝大大的幫忙.
7#
發表於 2008-4-28 20:47:10 | 只看該作者
如果用在FPGA design的話,可採用CAM(Content Addressable Memories)來比對data(即=71),CAM 做input data(=71) 的 search,當match時,則輸出match的address.速度很快.
( r+ D( {$ R; {. H6 `6 M4 a2 M- a! Q1 G0 y% K$ i

' f, F5 O' P2 G9 K1 D" O4 k: W  a9 V2 K4 a! u& V
再配合一些control logic即可達到目的.

本帖子中包含更多資源

您需要 登錄 才可以下載或查看,沒有帳號?申請會員

x
6#
 樓主| 發表於 2008-4-28 13:44:13 | 只看該作者
原帖由 addn 於 2008-4-28 11:22 AM 發表 ( r" [2 @! X- p$ F
您好
' x+ ], q9 B/ N依你的需求,想要做到1個clk做一次動作,7 {# h& h$ }, S) T+ H% `: L: f
似忽不容易7 [) c+ N% b6 i3 z  f4 l; C* d

, Q( r- N" m5 o  J* {由於你的資料蠻多筆的,不然可以試試關聯記憶體架構
8 p) o! D0 G3 Y& S

4 C, u5 {& [! D  ?; N' B. q$ r8 g: O1個clk做一次動作的方式,我是指,每次只做一個資料的比對,所以在1000筆資料裡,找到第i筆與第i+188筆資料為71的最差時間為812個clk
5#
發表於 2008-4-28 11:22:43 | 只看該作者
您好
# `. {( {0 Z: B9 `$ i! x6 R7 @依你的需求,想要做到1個clk做一次動作,
* T! b. |: Z4 i: T( _似忽不容易7 n* f, J% N5 M  p7 S5 p) G9 ~. i

: @. }* W  l& }2 E0 f由於你的資料蠻多筆的,不然可以試試關聯記憶體架構
4#
 樓主| 發表於 2008-4-28 10:15:56 | 只看該作者
原帖由 michael6172 於 2008-4-28 09:34 AM 發表 ' I8 {* W) |9 ?& C) h
你的想法好像要把verilog當C來寫耶,二樓大大的方法可以用用看,不過要花蠻多時間去搜尋^^

* N) a# D3 p' O1 k. }
& U4 K$ m2 H$ J  _% a我的想法是ram先存1000筆資料,然後開始找第1筆跟第189筆資料看是不是71,如果是ram就輸出,如果不是第1筆資料丟掉,將最新資料放進第1筆資料的位址
+ G4 Z( e5 F( f接下來,找第2筆與第190筆,看是不是71,如果是RAM輸出,如果不是最新資料放進第2筆的位置,依此類推: o" c7 H! M+ f) ^+ q% D) {' @% _
以上動作是1個clk做一次動作.
) f+ h" B  {3 y5 c0 N& w2 X所以我想問說,有什麼方法可以比對RAM裡面的值
3#
發表於 2008-4-28 09:34:52 | 只看該作者
你的想法好像要把verilog當C來寫耶,二樓大大的方法可以用用看,不過要花蠻多時間去搜尋^^
2#
發表於 2008-4-28 08:31:03 | 只看該作者
你應該可以用比較器與計數器來達成這樣子的功能。
您需要登錄後才可以回帖 登錄 | 申請會員

本版積分規則

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

GMT+8, 2024-6-13 09:01 PM , Processed in 0.118515 second(s), 19 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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