Chip123 科技應用創新平台

 找回密碼
 申請會員

QQ登錄

只需一步,快速開始

Login

用FB帳號登入

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

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

[複製鏈接]
跳轉到指定樓層
1#
發表於 2008-2-10 14:31:53 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
最近我被要求設計一顆的控制chip,其中裡面有RAM來暫存控制的指令
8 L% ^0 {7 A! {$ n! s
- H$ p8 L7 B) ~% ?- d# c但是蠻多的問題困擾著我,先說記憶體好了,要求RAM的基本架構如附圖" K( J! P5 Q. _' V# O9 Z/ d- a
0 U/ n: \9 E( H' |: m
但是用VDHL直接寫一個8 X 64的記憶體是很簡單的一件事,我不是很了解為什麼5 j; y8 g& [+ g' }) B; ]
7 |( z: \$ H% p9 W* R2 V5 ~3 R
不直接用VHDL陣列方式寫一個RAM,為何要被要求先設計一個D-latch然後使用
. S! l3 `! D6 n; i) X- @8 O
/ Q: B3 h) G' O0 x3 R) lport map的方式,再用generate語法成8 X 8個,然後設計column decoder與row decoder
3 Z# Y2 N! |4 l+ n8 {5 h% X, W+ E' v
9 a# |0 d1 k( |, h, W, d,對我而言,這是一個笨方法,有點土法煉鋼,但是我不是很懂這兩種作法的差異...* m) ^) {: K6 x: `7 L' U) n
) @/ E7 `5 h  w3 ~# w7 D. a
有哪位大大可以指導我嗎?我將非常的感謝...

本帖子中包含更多資源

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

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

回復 1# 的帖子

我的想法是/ W  V/ d; A1 G& V4 ~, s$ @
如果你用VHDL陣列的方式做MEMORY4 ~! E/ R2 A; z; X
那就是純粹的 software access4 r8 s+ B/ m* `' J$ O% p  \9 x7 O; J
而不是 hardware access
9 L$ `# `% x9 [% h/ O% \% `, j3 `) |
  M. \& p" W( E3 T1 d你有一個Memory array  但是你如果想要順利的讀寫它* \1 r$ P) Q; N" p
首先 Controller 就要讀入 正確的 row address" ]" I5 A8 L9 ]7 L" t6 M+ f. P" M& O
column address,  還要讀入正確的 Command
  Q  D( S0 W$ f4 F/ F- c$ N: L這時候就需要Row decoder 與 Column Decoder的電路
- X# c, {( l9 q) S; i5 k才能夠解到 正確的那一個位置
& |3 c) A8 O% D/ o( ]+ x/ z3 k3 X這些 controller 電路與 Decoder 電路 都不可能在短期間內運算完# |+ {9 T- E- O: _2 f+ |; R) D
" W; N- `9 \+ Z3 @6 P! M
其次 Memory Array 如果只是 64X8 那還算小
6 }2 f1 z. y0 O# b$ _4 D如果是 512K  16M , 256M ....etc 那就是一個巨大的Loading) k9 B, c( f, K, t+ h
一條運送 讀寫Data 的 Line 會看到很重的負載
& G) D7 u$ x. a* f1 r; v+ q3 g  g( |8 m1 }- S$ G+ n3 T
從Memory Cell 讀出來的訊號 會跟電子學的 Small signal 一樣小. L" [/ D# ~0 W& ?  i
所以Memory Array中處處還得有 Sense Amp. 的電路存在
! O+ S; b. Z# `9 h& i才可以把小訊號放大成完整的 0與1 送到 XIO端
3 l) H9 J' p* i2 l& EData 從sensing到訊號夠大到 運送到XIO PAD的過程同樣也需要花費一些時間.9 c; h% o2 B: u0 {
) r. e$ |! F' o4 [& s
寫那麼多只是想說明
, a' O( O% [+ z' W" T$ kVHDL 與 Verilog 都是硬體描述語言
; w6 v& R6 w4 [: L$ O所以Memory 裡面當然要包含 Decoder電路  控制電路 甚至是電源供應的電路
8 `- \2 d% W- Y9 I2 Q) H+ F: |並不是單純的軟體 N-Dimension 陣列,  可以用很快的速度去 Access 或Write  它." b( n; [6 o( f1 T

$ M1 P' r/ r7 Y1 a" c; [# s1 `[ 本帖最後由 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.
! M! y' g7 O  W$ s9 Y; ~) n+ v2 [Software only see the "function"
, Q  U+ V8 ^1 A6 Z& FHardware need to see Timing and function.
( z. l- S0 c5 z6 {$ V6 _- g; w  x. N
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..
& y( Y' T5 ]* X, ]% E# oThe result is ...the may make a very "stupid" design for you.
1 T: }# }# \! t, |& C8 \E.g..you can use A*B to do the operation or you write your rtl code to make your fast multipler.
, o( l( g7 s. UThat's the difference between computer Sci and computere engineer
4#
發表於 2008-3-11 12:18:10 | 只看該作者
我想...
4 k+ k1 Y3 L0 n; p- W" v
& V- _9 w6 _/ ^8 L7 |, ?寫成獨立的module是為了彈性
9 m3 z) n6 R. s- E6 |& S/ [3 z, T9 t# O& j% V& L' V
用D-latch寫是為了將來:8 p# P2 V2 F: X
1) 做成ASIC時, 體積比較小; y5 P, C% V2 L/ I$ H
2) 如果需要大一點的RAM block時, 可以用RAM marco, 這時如果你的code相容性夠的話, 將來遇到時就好處理了
您需要登錄後才可以回帖 登錄 | 申請會員

本版積分規則

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

GMT+8, 2025-1-18 01:37 PM , Processed in 0.156000 second(s), 19 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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