Chip123 科技應用創新平台

 找回密碼
 申請會員

QQ登錄

只需一步,快速開始

Login

用FB帳號登入

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

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

[複製鏈接]
跳轉到指定樓層
1#
發表於 2008-2-10 14:31:53 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
最近我被要求設計一顆的控制chip,其中裡面有RAM來暫存控制的指令
5 w2 U7 \9 c: S4 b5 E: j7 \6 y4 i* f
但是蠻多的問題困擾著我,先說記憶體好了,要求RAM的基本架構如附圖3 q& v9 e5 U7 T

/ y* J8 }/ ^% h- t4 L6 C9 q$ c: S但是用VDHL直接寫一個8 X 64的記憶體是很簡單的一件事,我不是很了解為什麼& ?, q+ [: b# Q9 M- x- {2 z
* B  e  ~. d( O9 H
不直接用VHDL陣列方式寫一個RAM,為何要被要求先設計一個D-latch然後使用+ V: a& s. V" k- m, {

1 p# ]+ c; n# o3 Bport map的方式,再用generate語法成8 X 8個,然後設計column decoder與row decoder3 s6 i7 d8 l9 U
0 w5 W- a/ N6 J: M% p
,對我而言,這是一個笨方法,有點土法煉鋼,但是我不是很懂這兩種作法的差異...$ F9 w% |7 m/ g, w4 c

( ^$ U& A& ]1 ~4 @# G) i有哪位大大可以指導我嗎?我將非常的感謝...

本帖子中包含更多資源

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

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

回復 1# 的帖子

我的想法是0 N: Q3 T' L2 l' E
如果你用VHDL陣列的方式做MEMORY/ R. k2 \$ O4 A' V$ ?# E
那就是純粹的 software access1 s+ J2 U1 G8 s& y$ i
而不是 hardware access
4 d8 R# \' ^) c$ i( D1 p. F
# G) q8 l3 t7 Y! h你有一個Memory array  但是你如果想要順利的讀寫它- ]+ S+ t; H7 _2 l, g
首先 Controller 就要讀入 正確的 row address
0 p; J9 d5 O! q! U$ Z1 w) O6 m5 r: Rcolumn address,  還要讀入正確的 Command
% f% s- g, I* p4 \+ {+ m這時候就需要Row decoder 與 Column Decoder的電路  ^+ {2 i. [+ u( q
才能夠解到 正確的那一個位置( J) X+ D3 Z( U& n) h
這些 controller 電路與 Decoder 電路 都不可能在短期間內運算完5 I4 `; ?3 N3 G/ a) ~' O& R* ~
" h! t+ U. I& O) a$ y
其次 Memory Array 如果只是 64X8 那還算小
7 a$ r$ e' z' K如果是 512K  16M , 256M ....etc 那就是一個巨大的Loading
3 b0 b% q: j) [: @  ^一條運送 讀寫Data 的 Line 會看到很重的負載7 F: R# O: v. ]9 {9 @

2 X" f" m8 y5 C/ |6 L* N從Memory Cell 讀出來的訊號 會跟電子學的 Small signal 一樣小
) ?0 f9 q, @& n4 Q$ G7 ?/ q2 J所以Memory Array中處處還得有 Sense Amp. 的電路存在
  g/ p2 V) G4 E* l# l  t. W才可以把小訊號放大成完整的 0與1 送到 XIO端
' Q& X. Z" R2 Z; f0 K: _6 Y/ L1 eData 從sensing到訊號夠大到 運送到XIO PAD的過程同樣也需要花費一些時間.
' `- U7 T& X8 c7 V+ ~; s
! f8 O: P5 X* H3 o! i寫那麼多只是想說明9 d. i  l5 }: {+ S9 ~
VHDL 與 Verilog 都是硬體描述語言% m- S6 h4 _0 H8 P3 W' M2 c
所以Memory 裡面當然要包含 Decoder電路  控制電路 甚至是電源供應的電路1 D, ]* j$ k' Q. ?  t/ Y" M! i" W
並不是單純的軟體 N-Dimension 陣列,  可以用很快的速度去 Access 或Write  它.
( `" K2 y. z& N0 @, l0 J) U& j0 H' L  p* T. F6 c
[ 本帖最後由 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.
1 Z! ^/ Y/ H6 @- e$ ]. c3 D" ESoftware only see the "function": F6 Z1 i; d. U
Hardware need to see Timing and function.& H5 F( I% w4 d' p$ `

* N$ [8 }" ^. _8 Y, p+ YIf 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... Z& R. D# I. O% H! N
The result is ...the may make a very "stupid" design for you.+ y+ z" C. f* {
E.g..you can use A*B to do the operation or you write your rtl code to make your fast multipler.
9 V+ B! Y( b+ a! }+ @  x9 OThat's the difference between computer Sci and computere engineer
4#
發表於 2008-3-11 12:18:10 | 只看該作者
我想...
8 i# k2 i5 \. Z; t; U2 @
2 }6 \" @4 d- j" a3 @/ u% T% N4 K5 x# J! t寫成獨立的module是為了彈性
* j6 E9 v; F2 m% ]. H
6 k! y! F# w, _3 J# M) [用D-latch寫是為了將來:5 }* j0 L+ ~9 H* N" ^; r) @
1) 做成ASIC時, 體積比較小
& Y3 M  ]+ {# a$ n& n2) 如果需要大一點的RAM block時, 可以用RAM marco, 這時如果你的code相容性夠的話, 將來遇到時就好處理了
您需要登錄後才可以回帖 登錄 | 申請會員

本版積分規則

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

GMT+8, 2025-1-18 02:40 PM , Processed in 0.156000 second(s), 18 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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