Chip123 科技應用創新平台

 找回密碼
 申請會員

QQ登錄

只需一步,快速開始

Login

用FB帳號登入

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

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

[複製鏈接]
跳轉到指定樓層
1#
發表於 2008-2-10 14:31:53 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
最近我被要求設計一顆的控制chip,其中裡面有RAM來暫存控制的指令; S/ l0 ^% G' G

3 s  b* U7 Y, h' a( h3 [但是蠻多的問題困擾著我,先說記憶體好了,要求RAM的基本架構如附圖! ~6 x! p5 ]; v

# F" ]* I6 O# e4 m  P2 N4 e' u8 n但是用VDHL直接寫一個8 X 64的記憶體是很簡單的一件事,我不是很了解為什麼
0 V8 b, T. K, t$ s( |& N- v" Y8 z
不直接用VHDL陣列方式寫一個RAM,為何要被要求先設計一個D-latch然後使用
1 W' V, y* t  X- M& r9 ?2 q. T: h3 _
port map的方式,再用generate語法成8 X 8個,然後設計column decoder與row decoder
) l+ p  E, A( t- c$ g
  |# t' M% ^/ J0 \8 K,對我而言,這是一個笨方法,有點土法煉鋼,但是我不是很懂這兩種作法的差異...$ p) ]1 g! {! Y, I& f- z$ L
' N6 t' b" ?8 u0 `- b
有哪位大大可以指導我嗎?我將非常的感謝...

本帖子中包含更多資源

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

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

回復 1# 的帖子

我的想法是0 L9 d) M" [/ v0 X* U
如果你用VHDL陣列的方式做MEMORY. x- Q. I8 J) @
那就是純粹的 software access0 j! A" P8 T) R9 E+ [) i) P6 [6 w
而不是 hardware access
! }* B+ K2 {% U2 Y( H1 t7 i( b; s  t( p, t
你有一個Memory array  但是你如果想要順利的讀寫它; x2 F/ L  Z- r6 S
首先 Controller 就要讀入 正確的 row address
+ \$ P) e6 l! Z4 [1 U5 S: `6 Qcolumn address,  還要讀入正確的 Command: v& B% k' c" ~5 ]' R' S% {
這時候就需要Row decoder 與 Column Decoder的電路3 G" l: R8 b* F# q* ^2 h: ~
才能夠解到 正確的那一個位置5 u4 y2 l6 H0 \3 I: C6 C
這些 controller 電路與 Decoder 電路 都不可能在短期間內運算完' g7 K0 i8 N* y5 O9 T0 N

) ~# k3 x, P9 e$ w% U4 T) ^. r6 E- @其次 Memory Array 如果只是 64X8 那還算小
" [/ q% G( |" i5 M. h4 M如果是 512K  16M , 256M ....etc 那就是一個巨大的Loading
- Z9 ^. \: ~  @4 q9 {; E一條運送 讀寫Data 的 Line 會看到很重的負載# {5 f8 t" e$ d; |& `: y! `# g# @

+ V3 g* R. o7 m/ ^從Memory Cell 讀出來的訊號 會跟電子學的 Small signal 一樣小& S- @0 @) P9 d2 c0 ]
所以Memory Array中處處還得有 Sense Amp. 的電路存在   f& D' D. w' e1 h  `
才可以把小訊號放大成完整的 0與1 送到 XIO端' [; }& N/ r6 P, n
Data 從sensing到訊號夠大到 運送到XIO PAD的過程同樣也需要花費一些時間.
2 I$ d/ D" y/ O2 a# o1 c( y2 S; W+ p& }4 g; X  Q( j
寫那麼多只是想說明
% R! }5 X* `& P4 MVHDL 與 Verilog 都是硬體描述語言% Y; U1 y3 ~; E* O
所以Memory 裡面當然要包含 Decoder電路  控制電路 甚至是電源供應的電路7 Q, I' @- w& w( p, I2 j; Y# m
並不是單純的軟體 N-Dimension 陣列,  可以用很快的速度去 Access 或Write  它.  i6 A4 J6 q1 T. z7 X

0 I& n" o3 V3 i; d0 T[ 本帖最後由 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.5 [, J3 m2 z5 A+ k
Software only see the "function"
2 S1 _; ~  [' }# Y) w! W2 t4 KHardware need to see Timing and function.8 s8 |; b: b: a( a- D6 j+ M

! D5 ~* J* d& Y6 V9 S$ \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..9 k' |5 V$ u( l1 \% o& t
The result is ...the may make a very "stupid" design for you.
6 S: b. K6 l1 J. ^8 I2 WE.g..you can use A*B to do the operation or you write your rtl code to make your fast multipler.
  _. @7 f: _5 z9 z7 HThat's the difference between computer Sci and computere engineer
4#
發表於 2008-3-11 12:18:10 | 只看該作者
我想...9 ?' R$ J# C$ v  V$ f1 J
/ c0 F' u1 h5 G& u4 O+ w
寫成獨立的module是為了彈性
$ o% q2 k, K. {2 R( E0 R6 v1 q; c2 J4 U! v4 p4 g2 C
用D-latch寫是為了將來:
' `7 a( L' b1 i! y9 p& {- ?' L1) 做成ASIC時, 體積比較小
+ D4 }4 N9 w' a2) 如果需要大一點的RAM block時, 可以用RAM marco, 這時如果你的code相容性夠的話, 將來遇到時就好處理了
您需要登錄後才可以回帖 登錄 | 申請會員

本版積分規則

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

GMT+8, 2025-1-18 11:54 AM , Processed in 0.156000 second(s), 18 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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