Chip123 科技應用創新平台

 找回密碼
 申請會員

QQ登錄

只需一步,快速開始

Login

用FB帳號登入

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

[問題求助] RAM疑問

[複製鏈接]
跳轉到指定樓層
1#
發表於 2012-8-27 16:59:04 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
我現在已經把1024點的資料存到FPGA 的RAM裡面
) Q% V7 Z4 I8 x* S/ m* wsignal tap II也可以看到0~1024點的資料
: g- w5 G5 ?& N( B但是我想取512~1024點的時候
1 F1 ]% q8 j8 i$ @往往在compiler的時候 fitter那邊就是過不去
1 e+ A' O6 l9 m+ Z6 v. o0 T我看了error 說 LEs 不足....+ B3 P6 y& ?% t! C* g3 Z. z
為什麼只要特別取某區段的資料時都會遇到這個問題呢: r2 j% k8 S3 |, N% Q1 d9 n( ?
程式碼如下7 M7 s$ s. c! P" x
ram_data已經存取1024點資料
4 |' x7 H9 \9 m  d1 ]( {. }
* A/ F3 X; s/ malways@(posedge clk or negedge reset)
* _( @: {+ O. s        begin. [7 ?% s! s# u, u# g6 E7 _
                count_L1<=10'd1;               
8 R1 u5 q/ h* p5 |; Q$ C8 w; I                L1_addr<=10'd0;        ! ]/ N! C3 g% u8 V5 v7 h1 t
                if (reset ==1'b0)# D0 J1 U5 f8 e3 H  f
                        begin" g# ~) r) L/ h( p
                                count_L1<=10'd1;
  Z+ e0 t& D: [$ s1 G( B! `                                L1_addr<=10'd0;) `5 {( x8 |, x* `6 z9 d
                        end8 r' T! O* F7 t' \6 }3 m5 @
                else if(start_fft_flag == 1'b1)    5 J  ~" Y2 x- E% S6 Y1 q) A) J
                        begin
5 @9 M0 R1 ]# W' X+ z* j7 Y                                realdata_L1ain  <= ram_data[L1_addr];                           // 0~512的數值傳到realdata_L1ain                         
* j/ f3 t3 D0 i1 Y! m: D  P( v3 s) k                                realdata_L1bin  <= ram_data[L1_addr+512];                   //513~1024的數值傳到realdata_L1bin         
) o6 d9 X* V0 K" C                                count_L1        <= count_L1+1'b1;
" [( }4 N0 l' o                                L1_addr         <= L1_addr+1'b1;                                ! M1 w. o1 f' y$ G9 `; s/ ^
                                if(count_L1==10'd513)                ) u9 S1 C7 V' c  [2 U
                                        begin
4 L. ~& e1 z) [' C# W                                                count_L1<=10'd1;
' m9 \( z8 q1 g$ C8 R                                                L1_addr<=10'd0;       
& t' D5 h# b( t4 f                                        end                                                       
" Z$ L( k# U6 g8 O- V, f                        end! V' ^6 W8 B; O6 }9 k4 n
        end
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享分享 頂 踩 分享分享
2#
發表於 2012-8-31 13:59:54 | 只看該作者
你的寫法不對,這樣合不出block ram9 i* \6 |; V9 ~, F
不能同時做這兩行% h0 [" i1 o# Q, J  L8 m
realdata_L1ain  <= ram_data[L1_addr];
! N0 U+ Q* C6 `& @/ v/ p7 C  R& drealdata_L1bin  <= ram_data[L1_addr+512]1 k: |' J# J( S, Y2 M6 S' U" }
當合不出Block ram時
4 Q4 W) H  C# qtool就會用LE去合,想當然而,一定不足的
3#
發表於 2012-9-11 11:36:50 | 只看該作者
如果你硬要這樣取值的話,把RAM 拆成兩顆就可以了
您需要登錄後才可以回帖 登錄 | 申請會員

本版積分規則

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

GMT+8, 2025-1-16 04:50 AM , Processed in 0.140400 second(s), 19 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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