Chip123 科技應用創新平台
標題:
RAM疑問
[打印本頁]
作者:
daiyoung
時間:
2012-8-27 04:59 PM
標題:
RAM疑問
我現在已經把1024點的資料存到FPGA 的RAM裡面
% g. h, E3 r* V0 ]
signal tap II也可以看到0~1024點的資料
! N( s5 ~9 o/ Q8 g
但是我想取512~1024點的時候
; W5 z, R# C5 x6 ^
往往在compiler的時候 fitter那邊就是過不去
8 H# F: v# Z9 x+ f7 [ W
我看了error 說 LEs 不足....
( I% `+ l( ]% g5 r0 w. K& Z
為什麼只要特別取某區段的資料時都會遇到這個問題呢
/ q" v$ q0 L& C, t# J7 s
程式碼如下
$ E8 }- r6 z6 S- G# v: b3 L
ram_data已經存取1024點資料
# m! ^3 c& T! U) z: Q4 t
1 k4 P# }6 y9 q& l' e W: e K
always@(posedge clk or negedge reset)
1 S. H' }# n0 w
begin
* v- P$ v( V) t( m f4 m8 \
count_L1<=10'd1;
7 [* ?' t( g& \& u% m
L1_addr<=10'd0;
8 g* x/ O+ K! G2 Q% Q
if (reset ==1'b0)
+ @ I+ I1 ^5 v+ p7 P M" t( B! p; u
begin
: j0 U4 ^" E# {: F* A7 w
count_L1<=10'd1;
. D- N% _9 T, ^( T: _; c
L1_addr<=10'd0;
* `2 s) z e3 g- A8 U
end
^4 f# J" ?2 M! A# b4 j+ ]. v
else if(start_fft_flag == 1'b1)
! j6 O' l0 y& c0 ^+ _
begin
E: O* b2 y- q! F+ j5 G
realdata_L1ain <= ram_data[L1_addr]; // 0~512的數值傳到realdata_L1ain
+ C5 F% N6 ]5 a0 b# K$ F
realdata_L1bin <= ram_data[L1_addr+512]; //513~1024的數值傳到realdata_L1bin
8 T u" a9 f* H% ~
count_L1 <= count_L1+1'b1;
" M, |/ k! a' u+ D9 W; k7 t- Q
L1_addr <= L1_addr+1'b1;
0 F( C* D; a I D" U) K2 I' A$ ?
if(count_L1==10'd513)
/ Z( J; @7 u, C. R2 Y; [5 n
begin
4 v F, C& }8 {* d2 [, e% M
count_L1<=10'd1;
! W8 m; h! |7 J' ]& F& [+ P4 w
L1_addr<=10'd0;
; t# p7 j% n0 O! B: k" r* R
end
) _; B9 u- _% a: H F
end
8 L5 Z$ \ N( D; w, ]. P
end
作者:
eric994
時間:
2012-8-31 01:59 PM
你的寫法不對,這樣合不出block ram
W- A" _: j* h' I4 e' b: c
不能同時做這兩行
3 w) F2 J& ~' ?! b$ Q
realdata_L1ain <= ram_data[L1_addr];
M `" W: w. \& c, @* W. X
realdata_L1bin <= ram_data[L1_addr+512]
- h% C9 n- q, m1 y4 \) m4 X5 H) C
當合不出Block ram時
! O7 {7 R0 m5 P$ a
tool就會用LE去合,想當然而,一定不足的
作者:
michael6172
時間:
2012-9-11 11:36 AM
如果你硬要這樣取值的話,把RAM 拆成兩顆就可以了
歡迎光臨 Chip123 科技應用創新平台 (http://www.chip123.com/)
Powered by Discuz! X3.2