Chip123 科技應用創新平台

標題: RAM疑問 [打印本頁]

作者: daiyoung    時間: 2012-8-27 04:59 PM
標題: RAM疑問
我現在已經把1024點的資料存到FPGA 的RAM裡面
7 C$ c9 J9 M2 u6 Xsignal tap II也可以看到0~1024點的資料) b: t8 \6 C% G& L2 t
但是我想取512~1024點的時候
% t5 U/ P' n# [$ ^) r往往在compiler的時候 fitter那邊就是過不去, c& s# h9 M# L: F: G, K
我看了error 說 LEs 不足....
/ K1 o. C, a% R' S為什麼只要特別取某區段的資料時都會遇到這個問題呢
+ W* Z& u( r) L# u0 w# p, O2 O程式碼如下
4 d8 n: `, U) c3 ]9 Sram_data已經存取1024點資料
" T9 _) x' R2 N8 F; w1 V7 ^1 X
: m' X, A7 P4 T$ t8 }always@(posedge clk or negedge reset)4 r2 Z- ?: O/ i. N( d
        begin0 t' k, J2 s% @! W% d
                count_L1<=10'd1;               
+ J, z4 R; _; F& }                L1_addr<=10'd0;       
( U$ T/ ]  p, C+ k4 _                if (reset ==1'b0)
  y" Y6 J4 G& l/ h% S1 h5 @- p9 \                        begin
0 |% k! ^4 w1 L% o* V                                count_L1<=10'd1;
2 `# ?, m' O2 f, ?0 q                                L1_addr<=10'd0;# B0 t+ J& K6 F8 `  X0 X
                        end# l0 d# T4 r  k2 @0 ?1 ~
                else if(start_fft_flag == 1'b1)   
( M* W; ~3 |' i3 e2 ~. {                        begin
9 D  q7 o9 F+ G( R/ Y+ h' A  K                                realdata_L1ain  <= ram_data[L1_addr];                           // 0~512的數值傳到realdata_L1ain                         
* q' K9 t) m$ s+ m2 w6 |                                realdata_L1bin  <= ram_data[L1_addr+512];                   //513~1024的數值傳到realdata_L1bin         
* n1 a( O2 h3 O7 |                                count_L1        <= count_L1+1'b1;; V+ E- H2 p! e2 D" F
                                L1_addr         <= L1_addr+1'b1;                               
7 t( ]% O1 i' b+ S/ d                                if(count_L1==10'd513)               
: s  O6 e9 M+ i) M1 Q$ s; [  Y# B                                        begin) n: W: R) r1 Z0 A% R/ P3 W
                                                count_L1<=10'd1;. S7 _- K; m7 R" H: ^
                                                L1_addr<=10'd0;        ; ?/ Z( S8 c! i1 y% e% {
                                        end                                                        0 a& L$ v2 R# j0 d+ E
                        end
. |. u/ Q& ]6 ]# s, v; Y        end
作者: eric994    時間: 2012-8-31 01:59 PM
你的寫法不對,這樣合不出block ram
+ p5 L9 D  n: V6 J' @. y不能同時做這兩行7 k3 h. q8 z, ^) E  w
realdata_L1ain  <= ram_data[L1_addr];
4 `' x% W, c' Jrealdata_L1bin  <= ram_data[L1_addr+512]7 o" x# T' A# _% k" \
當合不出Block ram時
" T: |7 ~5 j( S! s' b- ptool就會用LE去合,想當然而,一定不足的
作者: michael6172    時間: 2012-9-11 11:36 AM
如果你硬要這樣取值的話,把RAM 拆成兩顆就可以了




歡迎光臨 Chip123 科技應用創新平台 (http://chip123.com/) Powered by Discuz! X3.2