Chip123 科技應用創新平台
標題:
記憶體問題
[打印本頁]
作者:
w10789173
時間:
2008-3-7 06:34 AM
標題:
記憶體問題
各位VHDL高手們,小弟寫了個6 X 64的記憶體,不過我試用實際的硬體電路來思考,並非使用軟體陣列的方式,如下:
( K( [; j5 w0 |: l
我設計了一個decoder for column address selection,一個decoder for row address selection,然後使用generate產生64個latch陣列,但是現在我不知道該如何指定我的腳位,懇請各位給點意見,謝謝!
: M/ p& K/ N( H- b& g# E. \
4 R2 t. V [+ n, w" y5 L
LIBRARY ieee;
$ s# w9 L% D0 Q( B* p1 N
USE ieee.std_logic_1164.all;
8 `4 U9 x8 ~0 t ?7 L
USE ieee.std_logic_arith.all;
4 c2 }) T3 X9 {0 Q
' F1 I4 a7 u( C
ENTITY memory_64 IS
! Z. o o2 ` b0 q. f& d
PORT(
6 \' V2 X; Q/ Q5 d/ D! A% g
mem_in : IN std_logic_vector ( 5 DOWNTO 0 );
* a) F1 }& s2 E3 |% _" m
mem_out : OUT std_logic_vector ( 5 DOWNTO 0 );
: d Z2 O @$ v9 }% ~
clr_l : IN std_logic;
0 a% c2 I# D& N- L( u8 }
mem_addr : IN std_logic_vector ( 5 DOWNTO 0 )
+ M; b. v1 ?) X2 z8 ?2 g; A
);
' Z$ F, v' L8 I' k
6 ?) O1 c0 H! d8 L* [
-- Declarations
0 s X7 Y6 f/ w& \
C" Q- ~8 M8 N* }. t4 v5 f
END memory_64 ;
' q9 h) v. ^( j' h
6 \& Y6 G: e4 w) b$ V9 o8 `% p2 p
--
& k3 l8 B& V# N" a w4 u
ARCHITECTURE arch OF memory_64 IS
1 d; ]: A* A4 g8 j9 [2 s7 D: n6 P
-- column decoder
( n% c6 T4 Z+ J6 s, k9 [
component mem_coldec
9 e* d; O+ O- C8 J& H0 {
PORT(
* X9 D: l* M5 \
col_addr : IN std_logic_vector ( 2 DOWNTO 0 );
; Q7 @2 i8 _% J3 H( M6 k% c) T
col_sel : OUT std_logic_vector ( 7 DOWNTO 0 )
W; h# t0 |3 o. i/ m8 Q
);
! Q! h- E* W+ ]3 K
end component;
" |2 y3 c2 Q5 b/ ?4 @" I
-- row decoder
" {) N: c/ P& J* j. [
component mem_rowdec
7 O3 b' O i: Q$ w' |+ @
PORT(
; V/ Q3 {) O+ c4 ?
row_addr : IN std_logic_vector ( 2 DOWNTO 0 );
2 ?9 X+ K( ? I1 t5 L/ S- U/ J
row_sel : OUT std_logic_vector ( 7 DOWNTO 0 )
' e' o2 |0 r/ J* Q: V4 W5 B
);
5 R! Y# e3 {- c ]7 ?, G! J* u
end component;
) B6 K! ^7 A. x2 Q. m- W- b- _( n
-- latch array
{! p5 r, R* T! i
component latch_cell
& n; o# \& Q) L) \; u+ k/ ^2 [6 d- M
PORT(
P/ n$ \+ u7 _& D- T
clr_l : IN std_logic;
' D) c T$ f! f9 L
col_sel : IN std_logic;
7 U, I. Q) c8 C# g1 R1 w7 j1 a2 q* e
row_sel : IN std_logic;
9 \1 |7 C7 g* V; c; g+ y
data_in : IN std_logic_vector ( 5 DOWNTO 0 );
2 ]2 }4 Y8 E N X
data_out : OUT std_logic_vector ( 5 DOWNTO 0 )
6 ?9 h( ^4 T% P# ^7 e) Y
);
+ _/ r' {/ J5 Y% G/ [
end component;
2 ~% a. g7 w0 y
; w8 l4 ?$ s2 o' ~% c
signal smem_out : std_logic_vector ( 5 downto 0 );
4 j& V. t3 m* ]' W, m* G1 t0 Q
signal scol_sel,srow_sel : std_logic_vector( 7 downto 0 );
* U3 K. f' B; Z2 U5 w! q7 C% ?* h1 u
BEGIN
# p4 m/ k% y- C- p4 i: h
u_0 : mem_coldec port map(mem_addr( 5 downto 3 ),scol_sel);
# s% w; @/ ~9 I' t
u_1 : mem_rowdec port map(mem_addr( 2 downto 0 ),srow_sel);
1 J9 ^- w0 ] z
g0 : for i in 0 to 7 generate -- column generate
B2 a; a( C7 }# [. Y$ \
g1 : for j in 0 to 7 generate -- row generate
% q5 s$ S; Y0 D
u_2 : latch_cell port map(clr_l,scol_sel(j),srow_sel(i),mem_in,smem_out);
$ ?, X( R$ {; T1 W- b/ r
end generate;
4 R' Q1 E4 H6 x9 x$ Y, I
end generate;
1 ~8 ^+ D6 m! N+ _1 G( ]3 r
END ARCHITECTURE arch;
作者:
addn
時間:
2008-3-7 11:27 AM
您好
* Q- a) L, [3 ?! W1 s p
不用將address分成row跟column
0 {/ B f( f* |& A O' y1 g) Z+ s
這樣只是將問題複雜化而已
) A+ c" r7 g/ C4 m. k7 c
你可以想成有64個6 bit的暫存器,來組成你要的ram
% C5 H+ I. H0 [1 B9 a; Z4 \3 t5 G- q
+ |" k1 P. z2 w) k/ s
用陣列寫法,code比較簡潔,建議使用
. y2 @* L* ~$ \9 V* k! [
以下有範例,請參考
+ S2 o$ O5 ?+ r! W2 k
http://www.doulos.com/knowhow/vh ... s/simple_ram_model/
作者:
w10789173
時間:
2008-3-7 12:30 PM
不行耶,這樣就好了,我就是要講將實際的RAM電路寫成VHDL,不過還是感謝你的提示,難道真的沒有人這樣子做過嗎?
作者:
addn
時間:
2008-3-8 11:26 PM
您好
6 D6 f+ z; t) r( K* m* N
不曉得你為甚麼要捨近求遠
) `. `5 K7 F0 A6 d, A8 P# n+ x
可以說說這麼做的原因嗎?
$ V) r/ A; g! A4 i( @. z9 F
還有這是要做甚麼樣子的應用
' f! D1 [3 L v; h2 R4 J
謝謝
作者:
w10789173
時間:
2008-3-12 11:02 PM
標題:
記憶體問題
我只是試著把FPGA規劃成一顆RAM
! J' _! r+ _. e3 }. U2 ^
+ P6 Q6 I/ L: e5 j O: K
沒有什麼特別的啦^^...
歡迎光臨 Chip123 科技應用創新平台 (http://chip123.com/)
Powered by Discuz! X3.2