Chip123 科技應用創新平台

 找回密碼
 申請會員

QQ登錄

只需一步,快速開始

Login

用FB帳號登入

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

[問題求助] 記憶體的迷思

[複製鏈接]
跳轉到指定樓層
1#
發表於 2008-2-10 14:31:53 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
最近我被要求設計一顆的控制chip,其中裡面有RAM來暫存控制的指令' s* d4 `( N  j. G7 ?$ _

) L  n$ d6 _' l. c" g1 B但是蠻多的問題困擾著我,先說記憶體好了,要求RAM的基本架構如附圖
$ N1 e6 ]' l. M0 U, D+ @( c* B+ C3 {4 p1 n( c$ a# E3 k1 S
但是用VDHL直接寫一個8 X 64的記憶體是很簡單的一件事,我不是很了解為什麼
+ t3 J  v, c. r% m
/ O% `+ |& A, D7 d/ V" K不直接用VHDL陣列方式寫一個RAM,為何要被要求先設計一個D-latch然後使用
6 E1 t7 j0 t/ O; |% R$ X3 M( w4 y4 X. X! M% o; p7 }" ^
port map的方式,再用generate語法成8 X 8個,然後設計column decoder與row decoder& I2 ^7 q9 p* i$ ^

; F; z5 f4 A0 C* a" n+ v,對我而言,這是一個笨方法,有點土法煉鋼,但是我不是很懂這兩種作法的差異...9 t% ]: m* B3 J: X1 b- {2 j
6 m% ~  j, t3 C7 h6 H
有哪位大大可以指導我嗎?我將非常的感謝...

本帖子中包含更多資源

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

x
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享分享 頂 踩 分享分享
2#
發表於 2008-2-10 18:10:23 | 只看該作者

回復 1# 的帖子

我的想法是
6 [' x4 Y" |  u如果你用VHDL陣列的方式做MEMORY
+ x# z( d% G. K/ \7 O7 H1 `那就是純粹的 software access& {# K) H: x# k+ ?& F
而不是 hardware access; q/ W. ^6 |( y& A  i2 a

8 O5 f9 e# W1 I, R" M' O你有一個Memory array  但是你如果想要順利的讀寫它8 v' R+ |: s/ m: k, o- j) \3 V3 y
首先 Controller 就要讀入 正確的 row address$ ?3 x/ O: c3 @/ L% Q/ ]' g
column address,  還要讀入正確的 Command
! }+ f3 _  ]- m% P這時候就需要Row decoder 與 Column Decoder的電路
; U) R) z' Y, ?5 N6 U, Y才能夠解到 正確的那一個位置
8 f* f: i) T7 I3 m& k; L4 r9 e這些 controller 電路與 Decoder 電路 都不可能在短期間內運算完9 j' n$ p  y8 {! K- [1 j5 E
% L9 M& R! @$ @  D
其次 Memory Array 如果只是 64X8 那還算小, S% _- @; r3 w
如果是 512K  16M , 256M ....etc 那就是一個巨大的Loading
! Q; r! O& M5 J( Z/ b7 T' O! `5 o9 }一條運送 讀寫Data 的 Line 會看到很重的負載
$ a: e$ U+ j$ i/ r$ Y3 n9 F
* e6 G" o& ?) s從Memory Cell 讀出來的訊號 會跟電子學的 Small signal 一樣小
8 H8 x7 @" P* m" j7 b( M. ^8 H所以Memory Array中處處還得有 Sense Amp. 的電路存在 2 `  k- k/ v7 C  G2 r6 m9 `
才可以把小訊號放大成完整的 0與1 送到 XIO端+ ?2 d6 @$ @5 _
Data 從sensing到訊號夠大到 運送到XIO PAD的過程同樣也需要花費一些時間.
- d5 d  F' |) {0 L& H/ W; f! Q  |" g7 h- }/ j0 p
寫那麼多只是想說明/ n# J+ _# S7 `$ P: m; r
VHDL 與 Verilog 都是硬體描述語言
5 k% _: M3 c' ~. U4 C所以Memory 裡面當然要包含 Decoder電路  控制電路 甚至是電源供應的電路
  L0 _" S/ e5 D. j並不是單純的軟體 N-Dimension 陣列,  可以用很快的速度去 Access 或Write  它.  i# j+ E  J# e& G4 C2 X( k
0 y* i+ k* M: t5 ~
[ 本帖最後由 yhchang 於 2008-2-10 06:12 PM 編輯 ]
3#
發表於 2008-3-9 04:07:10 | 只看該作者
The answer is...you are now simulating a Hardware....but not software.9 r! d- \9 D& O5 G1 R) c: S
Software only see the "function"2 q3 o5 G: b  }8 }! N: l1 T
Hardware need to see Timing and function.8 e! N3 L+ Q* I, [2 D

1 i! |9 M& }+ v4 Y% Z0 tIf you use HDL's memory array, then your tools will help you design what they thinks is good for them...but not for your design..9 q; [) w% `( k7 ~$ u. \
The result is ...the may make a very "stupid" design for you.
& U3 C* L2 O. l4 c  y/ f1 CE.g..you can use A*B to do the operation or you write your rtl code to make your fast multipler.
9 X7 |) w9 c+ ^0 DThat's the difference between computer Sci and computere engineer
4#
發表於 2008-3-11 12:18:10 | 只看該作者
我想...9 x- J% V9 W( ]  y! w+ z- \

. x- N8 k/ C9 s3 T( I, t; K8 j( @寫成獨立的module是為了彈性
  l9 Y$ i% r) [0 c/ R2 i7 t( o+ v5 h2 V! ~$ M/ l% C
用D-latch寫是為了將來:
& B3 |. L7 B! f: ?1) 做成ASIC時, 體積比較小5 }; x8 {/ O! y; x0 k& W
2) 如果需要大一點的RAM block時, 可以用RAM marco, 這時如果你的code相容性夠的話, 將來遇到時就好處理了
您需要登錄後才可以回帖 登錄 | 申請會員

本版積分規則

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

GMT+8, 2025-1-18 08:56 AM , Processed in 0.171601 second(s), 19 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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