Chip123 科技應用創新平台

 找回密碼
 申請會員

QQ登錄

只需一步,快速開始

Login

用FB帳號登入

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

[問題求助] RAM疑問

[複製鏈接]
跳轉到指定樓層
1#
發表於 2012-8-27 16:59:04 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
我現在已經把1024點的資料存到FPGA 的RAM裡面* h) |3 }  t& y+ d; o
signal tap II也可以看到0~1024點的資料" B- l1 x# [. d/ h+ ^3 k& P
但是我想取512~1024點的時候
, L# u$ m' J+ T( J往往在compiler的時候 fitter那邊就是過不去
3 ~! E6 \7 K8 z# D1 f; A我看了error 說 LEs 不足..... Y6 K, E' f/ I2 r. d( c
為什麼只要特別取某區段的資料時都會遇到這個問題呢% `# c9 @$ W' Q
程式碼如下
- C7 Z% z+ X6 G& Kram_data已經存取1024點資料
) k+ Q& }  b6 b( P% Q
: O9 i, o. A% z, e3 V: jalways@(posedge clk or negedge reset)! `* E! U+ B, y% S( ~- l
        begin3 @0 p7 M: P) c& N% Z& X" u; Z
                count_L1<=10'd1;               
+ L9 }, G- @. q2 U& H9 [- \                L1_addr<=10'd0;       
  t% [8 h) h3 @. N' I5 R; C4 F                if (reset ==1'b0)$ ]3 y8 p2 ?- l' [3 d
                        begin
0 m2 a" [( S3 j                                count_L1<=10'd1;/ y2 G2 o# w6 [& P; Z! d. d7 t0 a/ C
                                L1_addr<=10'd0;
$ [! X$ m* n0 M, C8 N                        end9 h$ P9 C4 F! R! a$ n/ ^6 F0 V# w; ?& I
                else if(start_fft_flag == 1'b1)   
5 f  U, P4 e- ?3 g- a& ?& x, Y                        begin# Y* n0 I  j3 ~, s; Q: G
                                realdata_L1ain  <= ram_data[L1_addr];                           // 0~512的數值傳到realdata_L1ain                         
# R) r* h  _: n                                realdata_L1bin  <= ram_data[L1_addr+512];                   //513~1024的數值傳到realdata_L1bin          ( }  F2 u5 Z: j! b5 n
                                count_L1        <= count_L1+1'b1;
/ f1 B- Z: w/ n' A4 ~                                L1_addr         <= L1_addr+1'b1;                                0 ^0 _8 _, o: @
                                if(count_L1==10'd513)               
  q6 H$ j& y# R% k) f1 Q, [                                        begin
* P  v% ^: `/ j                                                count_L1<=10'd1;2 a& F" B& Y1 L
                                                L1_addr<=10'd0;        5 H  v( V6 Z" b
                                        end                                                        9 j3 x$ |- N& _2 ]
                        end; p/ K2 P( o% {$ K# s  L; x
        end
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享分享 頂 踩 分享分享
2#
發表於 2012-8-31 13:59:54 | 只看該作者
你的寫法不對,這樣合不出block ram
5 X2 ?/ H' M/ w, f1 ]4 o) I5 x不能同時做這兩行
* D4 ?/ q- N1 S9 wrealdata_L1ain  <= ram_data[L1_addr];
7 a5 q6 z9 ]" trealdata_L1bin  <= ram_data[L1_addr+512]
! l7 X' k4 W* C; w當合不出Block ram時
/ L6 b6 ?6 w4 z( H4 Y) t. s8 Otool就會用LE去合,想當然而,一定不足的
3#
發表於 2012-9-11 11:36:50 | 只看該作者
如果你硬要這樣取值的話,把RAM 拆成兩顆就可以了
您需要登錄後才可以回帖 登錄 | 申請會員

本版積分規則

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

GMT+8, 2024-6-18 04:07 PM , Processed in 0.124016 second(s), 18 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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