Chip123 科技應用創新平台

 找回密碼
 申請會員

QQ登錄

只需一步,快速開始

Login

用FB帳號登入

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

[問題求助] 記憶體如何驗證

[複製鏈接]
跳轉到指定樓層
1#
發表於 2008-5-1 17:17:17 | 只看該作者 回帖獎勵 |正序瀏覽 |閱讀模式
各位前輩大家好:
. S3 u( u+ Q6 `5 R    小弟最近在做的project有很大量的記憶體存取
% [7 `8 T. }( Z" t6 `7 u5 V/ l    但在做的過程中曾想過,
# u  @: D$ P7 z/ t% O   
" A$ f# A) t+ d* G    在使用modelsim 看過控制訊號正確後' y% U  p1 l* r/ Q
    "如何驗證自己寫的memory controller有資料真的寫入或讀出"
" O% z3 y$ H4 m: S6 C8 Y& G8 k2 U
    因為在模擬的時候data line都不可能真的有資料進出,頂多看adress輸出跟控制訊號的關係而已
1 M4 c# u6 M" ~' B7 Y5 L    而我之前的做法還蠻爛的,就是先寫固定的資料進去,再讀取出來
+ f: m1 u6 h% Z! q# y     然後在內部寫比較器去比對,如果讀回來的跟寫入的資料一樣則讓LED亮某個燈
4 C7 p3 `3 u4 ~2 P    想想這好像不是很好的方法3 M1 M# n0 W' Q% I0 P+ L& K7 A
    想請問各位在做memory controller的驗證時有沒有什麼更好的方法呢 ?- G5 r6 W+ F$ P8 b! Y2 P' Q  S
    p.s1 : 還是小弟使用軟體模擬的方向錯了?
3 M) d$ W* B: ?' B4 v  a    p.s2 : 我有一台簡單的LA , 可是飛機夾對memory的pin腳來說太粗了,很難夾,有前輩有什麼好方法可以讓我量到真實訊號呢???) q# z% `9 H- j5 g
- B+ K9 d1 V$ S9 i. T: y$ E
    以上是我的問題,如果之前有人問過請版主告知,小弟會刪掉的
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享分享 頂 踩 分享分享
6#
發表於 2008-5-18 18:05:46 | 只看該作者
樓主的方法雖然不好  但卻是大部分 DRAM IC廠做 Function Check使用的方法
/ ~- X, l- p( K' ~1 _對自己準備要寫的資料  做一番精心的設計   0101  1010   0001  1110 .....etc
3 l7 x# S7 h# _3 D; h在同一套PATTERN  對Memory Controller 下不同的指令
, K, y3 a% ^3 n) M  S/ V1 R* d比如   Burst Length =1,2,4,8   Cas Latency= 1,2,3! p' @6 T, ?+ m* T' J
Data type是 sequential 還是 Interleave ....等
' l, k8 A% A$ \$ X
# [6 X5 e: H7 [! b5 `! f0 `- {每種MODE 都做一次 Write + Read 看看是否 一樣?
5 B& ~6 k) |& L. Q有些則是  你寫進去的DATA 會被 Mask掉  或是被 Trucate掉  所以你讀出來的資料不會與寫的一樣8 Y/ x4 E' g0 g
反正各種PATTERN的設計  都是希望在 輸出端 看到想要的 WAVEFORM  但不見得要跟寫進去的一樣2 k9 Y9 \! F3 f5 R5 `
當你把 CHIP全部類型的指令組合 都下過一次   
9 K+ I! u1 q* {3 v都沒有問題  基本上FUNCTION就沒問題了- K0 }% e  a6 }, g2 X, z3 x
剩下的就是 Timing Spec能否調進去的問題.
5#
發表於 2008-5-18 15:54:08 | 只看該作者
之前我在寫SDRAM控制器,因為容量達8MB時也遇到相同問題。要一個一個寫入再讀回送到PC去做驗證,花的時間很長。另一個問題是要放那一種資料。
# d1 N( P& E+ `$ j9 O後來試了幾個方法:( ]; h/ d' h$ j* u. l- B
1.放在Address相同的資料binary code。驗證是很簡單,可是覺得資料太規律,可能會有沒考量到的,像high byte data大多為零,驗不到。  w4 s& I7 @( |& ^1 B; Q( E
2.利用固定加入數值的counter做為資料,每次加入像97等質數,這樣就可以驗到high byte data。而且Address和data之間有數學關係,也很容易驗。6 M& a+ l4 X' A
3.使用CRC(或Linear  Feedback Shift Register)產生數列方法來驗,數值近似亂數,效果最好。
4#
發表於 2008-5-18 05:43:01 | 只看該作者
針對量測的問題給你意見,探棒可以用轉接成小的或是將要量測點作拉線之處理。
3#
發表於 2008-5-18 01:39:46 | 只看該作者
聽起來是你的ram是外掛的/ M3 ~0 k$ W1 a6 V8 A, E

: O% E. v1 d9 D. b1 p2 k針對你用LA去來信號這個問題而言, 你可以考慮利用FPGA內建LA去捉信號來看
2#
發表於 2008-5-2 11:11:48 | 只看該作者
對memory controller做驗證,要做到完整不容易,跟你要驗證的memory type有關,要做到每一家的memory都適用,更須了解各種memory的規格.; R0 \% \& S- D. D9 ~8 p3 o
基本上要有software interface (c/c++ program)到memory controller,還要建立各家memory model,然後先驗證memory controller 的control and status register 的reset values,再改變control and status register 值看是否正確,都正確後,再去做各種memory model的 read/write.
您需要登錄後才可以回帖 登錄 | 申請會員

本版積分規則

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

GMT+8, 2024-6-5 01:10 AM , Processed in 0.138018 second(s), 18 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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