Chip123 科技應用創新平台

 找回密碼
 申請會員

QQ登錄

只需一步,快速開始

Login

用FB帳號登入

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

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

[複製鏈接]
跳轉到指定樓層
1#
發表於 2008-2-10 14:31:53 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
最近我被要求設計一顆的控制chip,其中裡面有RAM來暫存控制的指令
6 P1 \' `6 |! R, M* L5 t" l1 A1 T* n7 j) A' O, u1 I4 I
但是蠻多的問題困擾著我,先說記憶體好了,要求RAM的基本架構如附圖; O  y4 j! w$ T2 F3 [3 Q

# Y& z4 q1 Q6 V5 L但是用VDHL直接寫一個8 X 64的記憶體是很簡單的一件事,我不是很了解為什麼4 Y0 r$ {8 z8 t$ d8 |' i# }4 f& F

, V3 M* y8 S  W+ h' K8 [& g+ e不直接用VHDL陣列方式寫一個RAM,為何要被要求先設計一個D-latch然後使用
) ^% K0 n/ ^5 e' |
$ c2 \" B  |) r5 Y5 |8 ]port map的方式,再用generate語法成8 X 8個,然後設計column decoder與row decoder
' T* `$ ~4 Z) G% A- F- J& F; q9 j9 s, L$ i! Q" J, `$ S
,對我而言,這是一個笨方法,有點土法煉鋼,但是我不是很懂這兩種作法的差異...
* x9 l6 z( F" w. w8 v# x! N7 d& b8 l3 \9 A) |) d6 f! _" w4 X
有哪位大大可以指導我嗎?我將非常的感謝...

本帖子中包含更多資源

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

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

回復 1# 的帖子

我的想法是
! D# b3 p; _+ ]0 ^- q, }如果你用VHDL陣列的方式做MEMORY
) V7 Z$ h) {. w. [( F2 s$ k那就是純粹的 software access% d" M! o0 Z- b0 q3 O& H9 S
而不是 hardware access7 l  z; x- s$ v: h" A
) f2 t% F( ^0 a" j, N* Y# R
你有一個Memory array  但是你如果想要順利的讀寫它
. c8 h! d8 U6 c5 z) l9 b; D, u首先 Controller 就要讀入 正確的 row address
. K. f6 i9 d/ p' C5 T! R& ]column address,  還要讀入正確的 Command
: Q; p0 V  Y$ N: E這時候就需要Row decoder 與 Column Decoder的電路! t$ @4 b5 ~8 q! k) ^+ A
才能夠解到 正確的那一個位置
) n( L) {/ v) l: j& E5 O5 [) |這些 controller 電路與 Decoder 電路 都不可能在短期間內運算完
/ I* ]  r% N$ m5 V3 F; ^3 u8 f7 _- ]  g( @/ _
其次 Memory Array 如果只是 64X8 那還算小
, I" @$ Y' T! U4 M如果是 512K  16M , 256M ....etc 那就是一個巨大的Loading
1 R$ {  J! T0 s一條運送 讀寫Data 的 Line 會看到很重的負載1 }2 G4 h! |% O- P2 G
0 p* h# |) U; T8 v6 J
從Memory Cell 讀出來的訊號 會跟電子學的 Small signal 一樣小* J! x* C7 p' B5 _$ W/ k# m* G% q
所以Memory Array中處處還得有 Sense Amp. 的電路存在
: J) V' j6 G7 O0 F4 R才可以把小訊號放大成完整的 0與1 送到 XIO端$ u" d$ @& _+ f/ a( C. ~8 W4 T
Data 從sensing到訊號夠大到 運送到XIO PAD的過程同樣也需要花費一些時間.  x% G- T4 x! x; d# z" P
! D7 E9 f8 S$ }/ q3 F+ k8 i8 E5 Q
寫那麼多只是想說明
2 ]0 q( }, o: {1 Q7 R% OVHDL 與 Verilog 都是硬體描述語言1 F7 h4 b# N! e% O! L, v
所以Memory 裡面當然要包含 Decoder電路  控制電路 甚至是電源供應的電路# I5 H) C5 Q/ d: C7 P8 d2 _/ ~
並不是單純的軟體 N-Dimension 陣列,  可以用很快的速度去 Access 或Write  它.7 z) a2 V- C* `$ V8 f7 r
$ E+ K* m1 `3 U# ~. x" ^
[ 本帖最後由 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.
- g' k( N; k, a% N8 t; m% q+ [Software only see the "function"
# g4 o  R' S4 F, l9 yHardware need to see Timing and function.0 u/ u# i0 }$ W' K2 ]3 h7 X3 _
; ^5 k1 j& K/ e7 z" a" D/ l
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..& F: ~! T* x: b4 L8 {
The result is ...the may make a very "stupid" design for you.) ]$ t/ Y! F* D- X2 Z7 @
E.g..you can use A*B to do the operation or you write your rtl code to make your fast multipler.8 S! i1 D+ S0 R
That's the difference between computer Sci and computere engineer
4#
發表於 2008-3-11 12:18:10 | 只看該作者
我想...
2 T* B7 g9 \, x7 E2 a4 t$ x6 J& c! d3 i8 \9 T( V
寫成獨立的module是為了彈性( \. P' A+ l* T) \7 F- Z) N
! \, r6 E' R  J& N3 Z  D
用D-latch寫是為了將來:
: p) Y* R/ i) N" _1 {' |6 `- O3 g, n1) 做成ASIC時, 體積比較小
5 `& o3 j, I+ u: b2 E" u2) 如果需要大一點的RAM block時, 可以用RAM marco, 這時如果你的code相容性夠的話, 將來遇到時就好處理了
您需要登錄後才可以回帖 登錄 | 申請會員

本版積分規則

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

GMT+8, 2024-6-14 02:23 AM , Processed in 0.123516 second(s), 18 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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