Chip123 科技應用創新平台
標題:
記憶體問題
[打印本頁]
作者:
w10789173
時間:
2008-3-7 06:34 AM
標題:
記憶體問題
各位VHDL高手們,小弟寫了個6 X 64的記憶體,不過我試用實際的硬體電路來思考,並非使用軟體陣列的方式,如下:
8 S6 ~2 T: J7 Z
我設計了一個decoder for column address selection,一個decoder for row address selection,然後使用generate產生64個latch陣列,但是現在我不知道該如何指定我的腳位,懇請各位給點意見,謝謝!
0 q0 M ^6 Q0 `7 |$ D8 P+ g
6 N$ O- g E8 z) [3 z
LIBRARY ieee;
+ ?% Y( ^0 j4 a1 ]
USE ieee.std_logic_1164.all;
! D6 O" p: F1 o7 C, Y o
USE ieee.std_logic_arith.all;
* d$ p4 o$ c/ L
' U4 S& {3 K. ^2 j
ENTITY memory_64 IS
+ o u/ C' w. l+ h w
PORT(
) d7 J7 s( D6 Q* m ?6 J3 Z
mem_in : IN std_logic_vector ( 5 DOWNTO 0 );
" x8 n( f( N) y+ |" x) O0 ]% t0 s
mem_out : OUT std_logic_vector ( 5 DOWNTO 0 );
; A. q. b" C# J* x9 z4 [1 x
clr_l : IN std_logic;
. `) n! o; V. X+ p6 f$ n$ a/ ~
mem_addr : IN std_logic_vector ( 5 DOWNTO 0 )
; E! L, T3 Q9 `& e; @( J: Z' ]
);
. @2 k! g0 t( J' J' f
% A/ k5 J* s. @
-- Declarations
9 m b! r, ^! G
8 ?$ R) ]; b7 E# n
END memory_64 ;
/ E6 W" b2 ~- |
' u9 b N8 y+ T' k/ o% M0 |
--
g/ N0 K# p5 E) [6 \& P2 m
ARCHITECTURE arch OF memory_64 IS
& m f/ H8 V7 j
-- column decoder
6 S8 b* P! ~% S7 m( y
component mem_coldec
$ p( [ R6 m7 {5 R) |( e% A
PORT(
; `) F( d+ y% L
col_addr : IN std_logic_vector ( 2 DOWNTO 0 );
6 y- m/ n& ^, E
col_sel : OUT std_logic_vector ( 7 DOWNTO 0 )
9 f. ]' K H3 b
);
- Y4 [) O3 ^6 B& r# L& h
end component;
$ ]" i/ H) c8 A
-- row decoder
7 |! W- O4 @1 g& ^( m6 a; W
component mem_rowdec
4 T5 e) h( t3 z8 y6 H& L
PORT(
- L6 s R* F; }! K" }# i* j
row_addr : IN std_logic_vector ( 2 DOWNTO 0 );
4 W1 o- a, ]3 @. _. b
row_sel : OUT std_logic_vector ( 7 DOWNTO 0 )
% c+ ]* _) }, W) ~
);
1 x1 \; m0 ?5 n' @5 |3 u- q
end component;
+ |. \% f8 h+ `) n4 s
-- latch array
5 P& T3 u8 s+ m2 [: y$ ?3 @
component latch_cell
5 C0 K' R# g w6 H; h8 K+ O* R
PORT(
+ B9 ?3 }/ O4 V# X! h0 r
clr_l : IN std_logic;
9 S! O! _' w/ s3 q: M8 _. _
col_sel : IN std_logic;
. I$ V" ~4 [( n
row_sel : IN std_logic;
' M& s: K- K7 k. W' U5 E' T
data_in : IN std_logic_vector ( 5 DOWNTO 0 );
' a* Q* S. ~8 T8 q% ?3 Z: b* L
data_out : OUT std_logic_vector ( 5 DOWNTO 0 )
9 N" {$ M( X; `3 J, i) [8 O6 R
);
* L0 L( d% l0 S) a+ c; ~
end component;
, X! H/ v+ n+ y3 ]. h% n O# O1 T" Y
) R4 Q" R" I5 Y9 d' _
signal smem_out : std_logic_vector ( 5 downto 0 );
) w' ^7 O) Z6 d: ?' D+ T
signal scol_sel,srow_sel : std_logic_vector( 7 downto 0 );
% v$ U1 ]0 n+ Y, A! F
BEGIN
' Q- e+ O; Y7 o7 j# O$ R
u_0 : mem_coldec port map(mem_addr( 5 downto 3 ),scol_sel);
D) u% @; b8 Z. z( l
u_1 : mem_rowdec port map(mem_addr( 2 downto 0 ),srow_sel);
2 c0 ~# H- c, H0 m* t
g0 : for i in 0 to 7 generate -- column generate
3 A+ E, l! ]9 K( j/ y
g1 : for j in 0 to 7 generate -- row generate
/ ?7 ]( ]" L8 I; S( u8 `1 p
u_2 : latch_cell port map(clr_l,scol_sel(j),srow_sel(i),mem_in,smem_out);
( h; c# e6 e: c2 R: F6 R
end generate;
; S$ R0 T6 C2 N4 m7 `4 d X, {
end generate;
4 V& w- H" C2 R4 k
END ARCHITECTURE arch;
作者:
addn
時間:
2008-3-7 11:27 AM
您好
3 [+ |3 U l N) U0 E" P
不用將address分成row跟column
% {9 Q5 @, M) F( _5 K4 M/ K
這樣只是將問題複雜化而已
- L; f8 }' t" y9 Y8 m' t$ a
你可以想成有64個6 bit的暫存器,來組成你要的ram
( r0 p7 k9 s- b4 Y# u7 t
# z. x7 U: D7 R1 y" i7 O" ?( X& R. K
用陣列寫法,code比較簡潔,建議使用
8 ~$ H1 h% w& U" Y3 N
以下有範例,請參考
/ I* O9 f% \: z2 s
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
您好
3 L5 y; R% W6 A8 k, G
不曉得你為甚麼要捨近求遠
9 l- F) A8 L6 j5 \( P: q4 {1 Y
可以說說這麼做的原因嗎?
3 R* |; X) }. w& C- ]0 ?
還有這是要做甚麼樣子的應用
5 k B& K1 j8 f; G
謝謝
作者:
w10789173
時間:
2008-3-12 11:02 PM
標題:
記憶體問題
我只是試著把FPGA規劃成一顆RAM
4 P1 Y: E. Z8 N" b" a; |! S8 P4 K7 H z
$ g8 q6 p; R8 Q: ^3 X
沒有什麼特別的啦^^...
歡迎光臨 Chip123 科技應用創新平台 (http://chip123.com/)
Powered by Discuz! X3.2