Chip123 科技應用創新平台

 找回密碼
 申請會員

QQ登錄

只需一步,快速開始

Login

用FB帳號登入

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

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

[複製鏈接]
跳轉到指定樓層
1#
發表於 2008-2-10 14:31:53 | 只看該作者 回帖獎勵 |正序瀏覽 |閱讀模式
最近我被要求設計一顆的控制chip,其中裡面有RAM來暫存控制的指令* M; `0 J9 k2 L+ a( H
- ~* d8 r- s# H( j
但是蠻多的問題困擾著我,先說記憶體好了,要求RAM的基本架構如附圖
  D; w8 z; _; g6 @7 i' e  V6 B' [% f" X4 S! @
但是用VDHL直接寫一個8 X 64的記憶體是很簡單的一件事,我不是很了解為什麼
4 ]) S6 g, q3 O9 R8 ]
: u& d6 q( h1 K: O7 x3 z不直接用VHDL陣列方式寫一個RAM,為何要被要求先設計一個D-latch然後使用
; |( F1 s7 X' Z  A; {) L
& O) h/ }6 y# i. i5 X+ tport map的方式,再用generate語法成8 X 8個,然後設計column decoder與row decoder9 n  l1 K$ |& ]  r: K
3 n  x* E1 H- }( K% Y9 }9 \
,對我而言,這是一個笨方法,有點土法煉鋼,但是我不是很懂這兩種作法的差異...
- w& ^- Y3 u2 g; K+ o4 m# I' {5 }2 r% @
$ C- x% J* j& u9 S* W有哪位大大可以指導我嗎?我將非常的感謝...

本帖子中包含更多資源

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

x
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享分享 頂 踩 分享分享
4#
發表於 2008-3-11 12:18:10 | 只看該作者
我想...1 B3 }* V' i& {4 G
9 m/ p  V7 @1 e2 L- V8 a( Z2 K
寫成獨立的module是為了彈性1 ~: y4 Q. o8 m1 L. [" h' M3 V: g
1 {' F! ]# {8 U. e" m" D. x3 K6 ~
用D-latch寫是為了將來:5 K4 [" K8 s- h- t% |
1) 做成ASIC時, 體積比較小
! I3 m6 P" t' q; w! _2) 如果需要大一點的RAM block時, 可以用RAM marco, 這時如果你的code相容性夠的話, 將來遇到時就好處理了
3#
發表於 2008-3-9 04:07:10 | 只看該作者
The answer is...you are now simulating a Hardware....but not software.
$ t7 a: U& G4 |7 zSoftware only see the "function"
5 ~2 S2 p  s( _( g) ?Hardware need to see Timing and function.- H4 |& q- Y/ N+ H0 f* U
/ P& R0 L% |6 K, T
If 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..5 j3 m$ n9 l% ~8 j( U
The result is ...the may make a very "stupid" design for you.5 U# q, u+ G  i% @0 i3 \
E.g..you can use A*B to do the operation or you write your rtl code to make your fast multipler.
6 }9 X/ d6 Y9 t5 U% S7 N: G2 K3 X6 zThat's the difference between computer Sci and computere engineer
2#
發表於 2008-2-10 18:10:23 | 只看該作者

回復 1# 的帖子

我的想法是
: v% ^# R$ k2 ^& g如果你用VHDL陣列的方式做MEMORY
# d& W: r% A  M7 A9 [那就是純粹的 software access1 x3 L9 s3 U' B6 Z, h
而不是 hardware access
$ _+ i) e6 }6 Y: H9 P
# Z/ k: s: g" G2 [你有一個Memory array  但是你如果想要順利的讀寫它
6 W% w$ T1 D, B5 y  n2 m首先 Controller 就要讀入 正確的 row address
0 o5 w7 ^; {( r7 ~3 {1 s: E# ]# icolumn address,  還要讀入正確的 Command4 Q8 M+ Y. u1 w' w0 n" i6 q
這時候就需要Row decoder 與 Column Decoder的電路
* h! n6 O/ I, K* [+ {% i  r才能夠解到 正確的那一個位置
& h4 U4 Y  ~3 b4 D/ L. i這些 controller 電路與 Decoder 電路 都不可能在短期間內運算完% N" I1 v# }; F8 R7 g1 l

1 }& S6 h! n2 |, n  E" c3 E" _# n其次 Memory Array 如果只是 64X8 那還算小& }, O( ], {  S6 y/ J! F
如果是 512K  16M , 256M ....etc 那就是一個巨大的Loading2 |. W  @' D) r' C: Z, O9 N
一條運送 讀寫Data 的 Line 會看到很重的負載* s4 J% q* Y6 Y% Y/ O4 i

& C. M, R" ?, P從Memory Cell 讀出來的訊號 會跟電子學的 Small signal 一樣小
& z& N) G0 ]7 Q$ a所以Memory Array中處處還得有 Sense Amp. 的電路存在 6 H0 e) v* t8 H, Z# e
才可以把小訊號放大成完整的 0與1 送到 XIO端6 `; M- o) o0 Q: D8 T. `
Data 從sensing到訊號夠大到 運送到XIO PAD的過程同樣也需要花費一些時間., r% {8 e8 |! g( ~) h

9 w( u4 Z$ T, r# P寫那麼多只是想說明% A' Y. R# _4 h$ v
VHDL 與 Verilog 都是硬體描述語言
3 }2 @4 p  r* a& f9 @所以Memory 裡面當然要包含 Decoder電路  控制電路 甚至是電源供應的電路4 c6 l3 Y( d& p% g
並不是單純的軟體 N-Dimension 陣列,  可以用很快的速度去 Access 或Write  它.
  n" R( h& J. W$ F7 l
8 c& g! b5 |. W4 n' O: f5 d4 ~[ 本帖最後由 yhchang 於 2008-2-10 06:12 PM 編輯 ]
您需要登錄後才可以回帖 登錄 | 申請會員

本版積分規則

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

GMT+8, 2025-1-18 11:49 AM , Processed in 0.171600 second(s), 19 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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