Chip123 科技應用創新平台

 找回密碼
 申請會員

QQ登錄

只需一步,快速開始

Login

用FB帳號登入

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

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

[複製鏈接]
跳轉到指定樓層
1#
發表於 2008-5-1 17:17:17 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
各位前輩大家好:7 @+ M, M! D% D% \
    小弟最近在做的project有很大量的記憶體存取+ y7 l+ S# k* U5 V% r
    但在做的過程中曾想過,
; f8 E3 q. K4 n2 D% P   
, S: E1 i" K* f. E% m* s    在使用modelsim 看過控制訊號正確後# L; r6 |' A$ k- l( o# ?! k
    "如何驗證自己寫的memory controller有資料真的寫入或讀出"
& v5 ^2 u9 V; ?3 w& _& l
; v6 A" h9 p0 H: C, }; _    因為在模擬的時候data line都不可能真的有資料進出,頂多看adress輸出跟控制訊號的關係而已, `! k3 R% r0 }1 s, `7 Y
    而我之前的做法還蠻爛的,就是先寫固定的資料進去,再讀取出來; F( u! i* \  O% \/ O" Z) _) i
     然後在內部寫比較器去比對,如果讀回來的跟寫入的資料一樣則讓LED亮某個燈3 z8 s9 [) y: s
    想想這好像不是很好的方法
" [: ]5 P' B+ \9 e3 t6 ~) U& T9 ~    想請問各位在做memory controller的驗證時有沒有什麼更好的方法呢 ?
  q) J3 n1 |# E) h- b5 j4 n) O3 J' R    p.s1 : 還是小弟使用軟體模擬的方向錯了?( |6 n5 v, Q9 k3 e- n2 z- `
    p.s2 : 我有一台簡單的LA , 可是飛機夾對memory的pin腳來說太粗了,很難夾,有前輩有什麼好方法可以讓我量到真實訊號呢???
% g$ N0 B0 u- P0 ?- B- |* Z" p3 l' j) X2 w8 I/ e
    以上是我的問題,如果之前有人問過請版主告知,小弟會刪掉的
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享分享 頂 踩 分享分享
2#
發表於 2008-5-2 11:11:48 | 只看該作者
對memory controller做驗證,要做到完整不容易,跟你要驗證的memory type有關,要做到每一家的memory都適用,更須了解各種memory的規格.) ?2 v4 \3 @, Q. P" U/ |5 |' z
基本上要有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.
3#
發表於 2008-5-18 01:39:46 | 只看該作者
聽起來是你的ram是外掛的
% U3 K, j4 h# Z
) T* Q/ x- ~; a8 O針對你用LA去來信號這個問題而言, 你可以考慮利用FPGA內建LA去捉信號來看
4#
發表於 2008-5-18 05:43:01 | 只看該作者
針對量測的問題給你意見,探棒可以用轉接成小的或是將要量測點作拉線之處理。
5#
發表於 2008-5-18 15:54:08 | 只看該作者
之前我在寫SDRAM控制器,因為容量達8MB時也遇到相同問題。要一個一個寫入再讀回送到PC去做驗證,花的時間很長。另一個問題是要放那一種資料。! S" Q' i. R. o; V4 e
後來試了幾個方法:
4 c. f  D) t  r. h/ n1.放在Address相同的資料binary code。驗證是很簡單,可是覺得資料太規律,可能會有沒考量到的,像high byte data大多為零,驗不到。
4 _$ S" s$ Q' e7 a+ {7 R2 G2.利用固定加入數值的counter做為資料,每次加入像97等質數,這樣就可以驗到high byte data。而且Address和data之間有數學關係,也很容易驗。  W0 X( N  z- L6 R: s" I
3.使用CRC(或Linear  Feedback Shift Register)產生數列方法來驗,數值近似亂數,效果最好。
6#
發表於 2008-5-18 18:05:46 | 只看該作者
樓主的方法雖然不好  但卻是大部分 DRAM IC廠做 Function Check使用的方法
4 v1 w6 `# [* w- [2 Q1 i# A. U對自己準備要寫的資料  做一番精心的設計   0101  1010   0001  1110 .....etc
' s7 O5 q4 @3 q4 p% H$ W# L( [3 m) a% _在同一套PATTERN  對Memory Controller 下不同的指令
) M7 I# `- p2 V% \比如   Burst Length =1,2,4,8   Cas Latency= 1,2,3
3 [6 w' L: W" i( N+ iData type是 sequential 還是 Interleave ....等( `8 v3 F( o% C' f6 C; h0 x
  G# Z% Z- T, ~' Y2 s4 W9 }
每種MODE 都做一次 Write + Read 看看是否 一樣?& R4 U0 C5 j1 c- T% W9 \
有些則是  你寫進去的DATA 會被 Mask掉  或是被 Trucate掉  所以你讀出來的資料不會與寫的一樣! S+ v( l) _) ~* M6 e0 A0 D/ L
反正各種PATTERN的設計  都是希望在 輸出端 看到想要的 WAVEFORM  但不見得要跟寫進去的一樣
  H5 I' K4 g! r" N0 O當你把 CHIP全部類型的指令組合 都下過一次   : D' l' o( |' s& U8 z. Q$ h) [0 m
都沒有問題  基本上FUNCTION就沒問題了4 {% U: F& M) v; x) Z  u4 }0 p
剩下的就是 Timing Spec能否調進去的問題.
您需要登錄後才可以回帖 登錄 | 申請會員

本版積分規則

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

GMT+8, 2024-12-28 03:34 AM , Processed in 0.158010 second(s), 18 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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