Chip123 科技應用創新平台
標題:
記憶體問題
[打印本頁]
作者:
w10789173
時間:
2008-3-7 06:34 AM
標題:
記憶體問題
各位VHDL高手們,小弟寫了個6 X 64的記憶體,不過我試用實際的硬體電路來思考,並非使用軟體陣列的方式,如下:
' `+ P$ i8 ^% a3 N7 P3 H% Z
我設計了一個decoder for column address selection,一個decoder for row address selection,然後使用generate產生64個latch陣列,但是現在我不知道該如何指定我的腳位,懇請各位給點意見,謝謝!
3 I7 ^5 Y8 I0 q+ \
* F- H# x0 n, x- T6 A* _" @& w
LIBRARY ieee;
/ `2 ?4 J' D$ S
USE ieee.std_logic_1164.all;
8 g8 i6 D6 }" N, z3 E# G1 f6 w
USE ieee.std_logic_arith.all;
0 `- M3 h! [, ~" I4 `1 p8 B
; r2 }* W$ F0 E L5 i, C+ P. q
ENTITY memory_64 IS
6 b( Z# B8 E5 t1 o
PORT(
, S" ~4 |: I3 a' x# d
mem_in : IN std_logic_vector ( 5 DOWNTO 0 );
, K, g% h0 C3 |
mem_out : OUT std_logic_vector ( 5 DOWNTO 0 );
- M) C8 A# C8 T4 ^" |0 _
clr_l : IN std_logic;
: t v8 t( ]; l
mem_addr : IN std_logic_vector ( 5 DOWNTO 0 )
0 C M# \& L4 W
);
2 r6 w s( G/ ~
) g& R5 ?6 {. q. V9 q c3 g
-- Declarations
: C" D0 y6 M8 k( O
4 {9 c, M: b0 F
END memory_64 ;
$ T5 j% o/ q4 R% [# C# O3 \/ j
2 e+ z" V6 @0 W( {% `# I- ?0 u1 H0 q
--
0 _! ~' ?5 D o1 N
ARCHITECTURE arch OF memory_64 IS
3 ~: W$ G* G. B4 A X7 h+ `1 p% |# x
-- column decoder
! ~2 j6 ^0 N5 l \
component mem_coldec
' i1 D. {5 ]5 w3 q# i
PORT(
; `/ R$ y9 b' b# G2 d2 f: B; u
col_addr : IN std_logic_vector ( 2 DOWNTO 0 );
4 u8 N! z: R2 B- C- U
col_sel : OUT std_logic_vector ( 7 DOWNTO 0 )
, W# j' f; Y$ _/ D& n& u4 O3 f2 |
);
7 `( d0 P! E7 U7 d- B
end component;
. ?7 S2 j# R( ~
-- row decoder
) l, i6 g0 j5 Y# D
component mem_rowdec
9 Z- }0 q( s( b8 I
PORT(
; `! A! J" p- c, b
row_addr : IN std_logic_vector ( 2 DOWNTO 0 );
3 J5 c$ `: H' _! q
row_sel : OUT std_logic_vector ( 7 DOWNTO 0 )
7 ^+ f0 d/ @' Z& A* q0 H
);
8 t" t7 Q0 a2 }+ b; |8 O, Z( A; F8 i
end component;
4 F4 A+ Q0 h X9 k
-- latch array
$ B6 h% N: U. B- i( q/ j
component latch_cell
/ S- K, q) s" d8 i) e
PORT(
2 X0 a- ?7 W8 [, R! G
clr_l : IN std_logic;
5 R: u( p% y( R F) W
col_sel : IN std_logic;
! g9 H: G. B4 \8 n
row_sel : IN std_logic;
5 }1 D. h0 T/ c9 K" h J( g
data_in : IN std_logic_vector ( 5 DOWNTO 0 );
: n( r% B6 d5 ~0 q! {
data_out : OUT std_logic_vector ( 5 DOWNTO 0 )
0 @: c- k) w2 p0 l! F: w7 b
);
* Q7 V0 Y4 W) X! l
end component;
; J( ^' S4 d+ t% K/ A
- i( O+ J$ X; f
signal smem_out : std_logic_vector ( 5 downto 0 );
, p& H' T$ x: s& r( W
signal scol_sel,srow_sel : std_logic_vector( 7 downto 0 );
* a6 S2 |/ F1 c1 H' x; M
BEGIN
+ Z) W' o% S6 M) F8 t( a
u_0 : mem_coldec port map(mem_addr( 5 downto 3 ),scol_sel);
+ z. V+ w }/ E5 h: g
u_1 : mem_rowdec port map(mem_addr( 2 downto 0 ),srow_sel);
* }; J& \2 b) t! |% E( s
g0 : for i in 0 to 7 generate -- column generate
% o6 K9 k$ y/ g
g1 : for j in 0 to 7 generate -- row generate
6 h# n. a% i( \3 K, n
u_2 : latch_cell port map(clr_l,scol_sel(j),srow_sel(i),mem_in,smem_out);
4 i% A7 f' t) |9 {
end generate;
& ?- ?- ~, z0 W
end generate;
( T' o0 I* p* \# R" \+ x9 i& ~
END ARCHITECTURE arch;
作者:
addn
時間:
2008-3-7 11:27 AM
您好
1 s5 |( P) S$ u
不用將address分成row跟column
' q7 d0 m- s6 d% \
這樣只是將問題複雜化而已
. ]( A2 P) Y0 O6 ~5 B2 |7 O6 z
你可以想成有64個6 bit的暫存器,來組成你要的ram
- h6 W& Y/ O9 q
0 y. W+ n2 K8 p7 V. ^6 B
用陣列寫法,code比較簡潔,建議使用
! g B& V4 u5 M# ]2 Q: S5 R
以下有範例,請參考
1 i5 e$ o* K7 D* T
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
您好
- H. N% |2 A. v* u% w: Y$ G
不曉得你為甚麼要捨近求遠
! y0 b) z1 |& q( _ k8 j2 Q
可以說說這麼做的原因嗎?
* Y' p0 w; M f% U4 n! r' e
還有這是要做甚麼樣子的應用
* @9 y: _& }* b4 q$ G
謝謝
作者:
w10789173
時間:
2008-3-12 11:02 PM
標題:
記憶體問題
我只是試著把FPGA規劃成一顆RAM
, W' t( W! j$ j
2 U0 c$ n/ M% G8 j) ]
沒有什麼特別的啦^^...
歡迎光臨 Chip123 科技應用創新平台 (http://www.chip123.com.tw/)
Powered by Discuz! X3.2