Chip123 科技應用創新平台

 找回密碼
 申請會員

QQ登錄

只需一步,快速開始

Login

用FB帳號登入

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

[問題求助] RAM疑問

[複製鏈接]
跳轉到指定樓層
1#
發表於 2012-8-27 16:59:04 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
我現在已經把1024點的資料存到FPGA 的RAM裡面( u& Y# f9 W4 Y: N. m! _
signal tap II也可以看到0~1024點的資料
9 T" B) m' R+ U! F% \但是我想取512~1024點的時候3 S8 e  U9 k- @$ \4 \
往往在compiler的時候 fitter那邊就是過不去" T3 m8 I  n! x2 ]
我看了error 說 LEs 不足....% h9 O  f3 ~# ]8 u, j: e' N4 x
為什麼只要特別取某區段的資料時都會遇到這個問題呢+ o4 Y) L/ O$ N: x
程式碼如下
4 p5 K2 G' v! c2 pram_data已經存取1024點資料* L" v( n2 d5 d# @
. x9 ^5 L! C6 H) K6 p2 z+ t; d/ i7 y' t) A
always@(posedge clk or negedge reset)
, L" S4 _+ t" l6 Y        begin
( t. y( k; d- a  n* `$ }/ p+ x: A6 \                count_L1<=10'd1;               
' ~7 C1 }3 Q7 `' M7 w                L1_addr<=10'd0;        , R/ N+ r/ K( a6 [9 R* r' l* F: }
                if (reset ==1'b0)1 K6 o. A! W9 p! g) G! O  T
                        begin1 J. a5 h6 I7 Y$ |0 j/ Y9 P
                                count_L1<=10'd1;  g" m! D1 z. P2 X, r. m/ O
                                L1_addr<=10'd0;1 n- H7 {" `# E" j7 l# X1 R" W' t1 ~
                        end
* J9 F! E0 @& e0 \7 _8 Q& D2 ]! E                else if(start_fft_flag == 1'b1)   
6 l; h: ]4 q$ n6 G& k                        begin: n; L5 s% t% D/ V8 }0 U5 |- H
                                realdata_L1ain  <= ram_data[L1_addr];                           // 0~512的數值傳到realdata_L1ain                         
4 |; t5 W$ o8 V                                realdata_L1bin  <= ram_data[L1_addr+512];                   //513~1024的數值傳到realdata_L1bin          / t5 K1 G. ]6 |  N8 _- S
                                count_L1        <= count_L1+1'b1;; w9 t) H# C7 F2 N/ ]7 m' i: b
                                L1_addr         <= L1_addr+1'b1;                                  n# _. o( ^. y6 n1 t. P
                                if(count_L1==10'd513)               
# ]( m- @- K/ [$ x! o) r/ z                                        begin. q/ d! U8 q7 v. Y* \8 x+ r+ q
                                                count_L1<=10'd1;
7 L$ W4 D4 X9 A! j- Q$ Y5 P' o                                                L1_addr<=10'd0;        5 h% E$ U7 Y' o+ v
                                        end                                                          |/ Z/ l1 W( T# L1 x+ N' ?
                        end
4 P0 _) V, c6 K& S) T! p, M1 n) g        end
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享分享 頂 踩 分享分享
2#
發表於 2012-8-31 13:59:54 | 只看該作者
你的寫法不對,這樣合不出block ram
; D; G" l$ {$ Y5 c不能同時做這兩行% k* L9 R; F0 y( S
realdata_L1ain  <= ram_data[L1_addr];
- I( @6 x6 c/ \& H! G1 erealdata_L1bin  <= ram_data[L1_addr+512]
/ D$ T/ E% i5 ?0 a當合不出Block ram時3 Z8 D0 T/ ~4 u4 `! N4 T
tool就會用LE去合,想當然而,一定不足的
3#
發表於 2012-9-11 11:36:50 | 只看該作者
如果你硬要這樣取值的話,把RAM 拆成兩顆就可以了
您需要登錄後才可以回帖 登錄 | 申請會員

本版積分規則

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

GMT+8, 2024-5-18 04:05 AM , Processed in 0.131017 second(s), 18 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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