Chip123 科技應用創新平台

 找回密碼
 申請會員

QQ登錄

只需一步,快速開始

Login

用FB帳號登入

搜索
1 2 3 4
查看: 5861|回復: 2
打印 上一主題 下一主題

[問題求助] RAM疑問

[複製鏈接]
跳轉到指定樓層
1#
發表於 2012-8-27 16:59:04 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
我現在已經把1024點的資料存到FPGA 的RAM裡面) y" w9 I9 O- V4 w2 ]
signal tap II也可以看到0~1024點的資料
& S: o. Q, K0 |: m5 R但是我想取512~1024點的時候( ]7 N# R8 j3 ^
往往在compiler的時候 fitter那邊就是過不去
% v6 V) z7 s' \% ^+ s, P! ^我看了error 說 LEs 不足....
4 x3 \/ l" a' c+ k' S為什麼只要特別取某區段的資料時都會遇到這個問題呢1 U& h1 j& A$ P7 E
程式碼如下
; e; ?0 `3 @7 N' K& f6 g" v! yram_data已經存取1024點資料$ H0 S1 _7 Z0 [7 O) h+ f
5 Y+ e( Z. c* d  U1 p, m; X
always@(posedge clk or negedge reset)- a. f4 c6 }4 F* p) o; g  C
        begin+ A& P. G* `' t5 {: L1 O! Y5 U
                count_L1<=10'd1;                7 E3 S6 L# R( u+ E: C' d* b
                L1_addr<=10'd0;       
% A) V! S1 R3 e5 Y# ]+ z                if (reset ==1'b0)
& L& z1 z3 A2 n- p                        begin' P# B& H9 a$ j3 d' q6 b
                                count_L1<=10'd1;
! C2 {' r% B& ?" d8 k/ s                                L1_addr<=10'd0;/ y# y& o5 I3 l: Q1 p, ]/ E) K! L
                        end) z, G, e$ x' c; g( b& w
                else if(start_fft_flag == 1'b1)   
6 r1 y: Z3 ^8 d8 A5 r( D1 @6 q                        begin& w6 r9 T% ~% V" s' N" ^
                                realdata_L1ain  <= ram_data[L1_addr];                           // 0~512的數值傳到realdata_L1ain                          , c' K: j4 A) c/ S( F( r
                                realdata_L1bin  <= ram_data[L1_addr+512];                   //513~1024的數值傳到realdata_L1bin          2 ^( ?0 \/ [4 R
                                count_L1        <= count_L1+1'b1;8 b; j: L/ O# U4 x: o% E/ c' M
                                L1_addr         <= L1_addr+1'b1;                               
6 ~' h  q8 A3 y$ i                                if(count_L1==10'd513)                & E- |! M+ M0 t# y8 e' U
                                        begin
  f3 U- m9 j$ ~! n7 L( J                                                count_L1<=10'd1;1 _$ k5 I% q9 {, t! _0 N7 A5 C
                                                L1_addr<=10'd0;        ! }" b" e) _: W
                                        end                                                        $ ~) P( H- j6 e* z( v
                        end
& r6 U! M) W7 w        end
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享分享 頂 踩 分享分享
2#
發表於 2012-8-31 13:59:54 | 只看該作者
你的寫法不對,這樣合不出block ram
4 l  z/ S; U6 `- L; C( |不能同時做這兩行
& k# F6 I- y: e2 q& B! vrealdata_L1ain  <= ram_data[L1_addr];
0 b+ \4 O- S6 F/ G) hrealdata_L1bin  <= ram_data[L1_addr+512]9 }# n  r" ^: x& p: n
當合不出Block ram時
: _% S$ J" n+ T& ?% Jtool就會用LE去合,想當然而,一定不足的
3#
發表於 2012-9-11 11:36:50 | 只看該作者
如果你硬要這樣取值的話,把RAM 拆成兩顆就可以了
您需要登錄後才可以回帖 登錄 | 申請會員

本版積分規則

首頁|手機版|Chip123 科技應用創新平台 |新契機國際商機整合股份有限公司

GMT+8, 2024-5-16 07:47 AM , Processed in 0.106514 second(s), 18 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回復 返回頂部 返回列表