Chip123 科技應用創新平台

 找回密碼
 申請會員

QQ登錄

只需一步,快速開始

Login

用FB帳號登入

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

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

[複製鏈接]
跳轉到指定樓層
1#
發表於 2008-2-10 14:31:53 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
最近我被要求設計一顆的控制chip,其中裡面有RAM來暫存控制的指令
7 r& r1 v! i( |5 B5 }; n1 q8 `2 ?+ x, J& @5 ]8 a* L, i
但是蠻多的問題困擾著我,先說記憶體好了,要求RAM的基本架構如附圖, R) S; g0 e5 ~3 d$ _
0 c# f: |6 ]8 d. \4 m% h# E; q
但是用VDHL直接寫一個8 X 64的記憶體是很簡單的一件事,我不是很了解為什麼
* Q8 D4 g8 R, Q5 n0 r1 x! K" z+ @& @
不直接用VHDL陣列方式寫一個RAM,為何要被要求先設計一個D-latch然後使用
2 O9 I- V5 w; b/ }, N5 s: o. k  Y1 I
port map的方式,再用generate語法成8 X 8個,然後設計column decoder與row decoder% W0 P$ r# I/ T: z* r

5 d+ }6 O5 q' c# m' E,對我而言,這是一個笨方法,有點土法煉鋼,但是我不是很懂這兩種作法的差異...% j3 N; \6 b. f$ Y
7 L) {( l. p* |% m( F# c% z: s
有哪位大大可以指導我嗎?我將非常的感謝...

本帖子中包含更多資源

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

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

回復 1# 的帖子

我的想法是
  C+ o/ X# Z) k7 ?! _' D9 u如果你用VHDL陣列的方式做MEMORY
( d+ f( B0 d# X2 R- E/ X那就是純粹的 software access! A! w4 b- c1 u! s  Y! t
而不是 hardware access
8 \0 i: ]7 S% V; r& x: y
- W" H6 j- n; W7 @- Z, b你有一個Memory array  但是你如果想要順利的讀寫它& q8 ?$ a! c, {" b  x! ]! @
首先 Controller 就要讀入 正確的 row address
6 ~* b5 d% A7 r( bcolumn address,  還要讀入正確的 Command2 l( o6 P1 Y  I0 \( Z* T3 V
這時候就需要Row decoder 與 Column Decoder的電路
% H/ b' x, u8 a% B6 G1 K0 F才能夠解到 正確的那一個位置
6 ?5 j" b5 y$ ]7 [這些 controller 電路與 Decoder 電路 都不可能在短期間內運算完
3 @8 g) T! h% B. ]2 ?7 |" `
4 U) [' `( ^! X# a5 ^* ]其次 Memory Array 如果只是 64X8 那還算小
) Q; i2 d7 M  I& l6 Q- b如果是 512K  16M , 256M ....etc 那就是一個巨大的Loading0 H5 Y- q6 o- C8 C
一條運送 讀寫Data 的 Line 會看到很重的負載
3 t/ `2 i$ t" D2 q
, _3 ~9 i9 w# G從Memory Cell 讀出來的訊號 會跟電子學的 Small signal 一樣小' g2 Y3 C; h9 e4 U! [
所以Memory Array中處處還得有 Sense Amp. 的電路存在 $ c& l$ F1 h  T0 X
才可以把小訊號放大成完整的 0與1 送到 XIO端3 e' P4 d6 V' u4 F/ N  X
Data 從sensing到訊號夠大到 運送到XIO PAD的過程同樣也需要花費一些時間.# z9 f4 |6 U+ J& `) m3 W6 ^' R

- S* k- P, T' O% Z寫那麼多只是想說明! Z! x8 \0 R% e- n( l
VHDL 與 Verilog 都是硬體描述語言4 g7 e) I  t: S; Z6 {3 B. R
所以Memory 裡面當然要包含 Decoder電路  控制電路 甚至是電源供應的電路6 q, O. y! c- t0 _  R, z
並不是單純的軟體 N-Dimension 陣列,  可以用很快的速度去 Access 或Write  它.
2 Z" ]* ^1 C. \( Z
; P6 v: \) A: A* ~3 e[ 本帖最後由 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.
& n& t. K3 `, [1 w2 dSoftware only see the "function"
2 n6 `9 l; J) M+ uHardware need to see Timing and function.
' U1 }/ s- C) ~6 |
3 p  o3 I) D& U& jIf 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..4 N. i0 h1 s/ F7 p
The result is ...the may make a very "stupid" design for you.
) R/ W7 O! F+ k/ U* qE.g..you can use A*B to do the operation or you write your rtl code to make your fast multipler.
- L( E( ~" |! F8 Y  @' c; {- BThat's the difference between computer Sci and computere engineer
4#
發表於 2008-3-11 12:18:10 | 只看該作者
我想...0 N7 \: S. A! i
) f* e7 t/ f4 R& V& |
寫成獨立的module是為了彈性
6 P+ T" }  J/ W; S
, x% h. [+ P! `. d$ S用D-latch寫是為了將來:
; a7 R# s/ X$ M( o. N- P3 e1) 做成ASIC時, 體積比較小6 X. U2 }% D  m. v$ G
2) 如果需要大一點的RAM block時, 可以用RAM marco, 這時如果你的code相容性夠的話, 將來遇到時就好處理了
您需要登錄後才可以回帖 登錄 | 申請會員

本版積分規則

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

GMT+8, 2024-6-8 03:49 AM , Processed in 0.125516 second(s), 18 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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