FPGA를 이유의 RAM이 많이 소모됩니다 블록.

H

hallovipin

Guest
친구,
나)가 내장된 3A의 한 (스파르탄 FPGA를 12 비트를 8K RAM을 안으로.이것은 FPGA가 안쪽을 가지고 20K 블록 숫양.하지만 제가 찾기가 모두 소진되면 인디애나 케이 블록을 사용 함에도 불구하고 겨우 8 별명은 나의 전부 20 RAM을 가지고 있답니다.

스타일을 내 코딩에있어보세요.
항상 @ (posedge clk_adc) //////////////////////를 시작 /////////////////// 쓰기 버퍼
)하는 경우 (write_enable
)하는 경우 (address_w == 13'b1111111111111
시작
address_w <= 13'b0000000000000;

또 시작
int_ram의 [이 adc_data_in <을 = address_w];
address_w <= address_w에서 13'b0000000000001;

끝항상 @ (posedge CLK) 시작
! (write_enable) 시작하는 경우
address_curr <= address_r;
시작 (address_r == 13'b1111111111111)하는 경우
address_r의 <= 13'0000000000000;
address_next <= 13'b0000000000000;

또 시작
temp_sum의 <이 = temp_sum 내용 neg_check;
address_r <= address_r 13' b0000000000001;
address_next <= address_r 13' b0000000000001;


address_r [지정 neg_check를 = (int_ram [address_next]> int_ram])? (int_ram [address_next] - int_ram [address_r]) : 12'd0;

ISE이 코드 RAM을 사용하여 18K입니다.)는 단일 클럭 그것으로 인해 죄를 읽는 세계 무역기구 데이터 포인트 사실 나는 address_r [(int_ram [address_next] - int_ram] 또는 다른 사람이 거기에 아무것도.

isse을 경우에 그것은 그렇게 해결 그럼 내가 어떻게하실 수 있습니다.하지만 난 calcultaions를 만들기 위해 두 개의 데이터 포인트가 필요합니다.

고맙습니다

 
확실하지 전적으로.확실하게, 거기 스파르타없고 트라이 포트 블록에 숫양 원시.하지만 하나는 숫양 블록만큼 할 수 두번 만든 케이스를 사용하여 읽기 1 쓰기 2.쓰기 충돌입니다 블록 모두 집합에 대한 동일하지만이 독립적입니다 읽습니다.

다음, 스파르타의 넣은 사람은 아니다는하지만,이 뒤진을 12B에 입력하지 않고 입력을 가지고 9b/18b/36b/72b의.금액의 일부 공간 따라서 낭비입니다.coregen의 RAM의 용량을 낭비하고 줄일 수도 있습니다 할 수있는 도구 합성보다 나은 일자리를.

내가 디자인을 의심 20k시키십시오 사용합니다.필요에서 16K 2, 읽고, 나머지는 숫양 블록에 손실로 인해 실제 가난한 매핑합니다.

듀얼 포트 차단 숫양이나 단순한 디자인으로 FIFOs대로 전에, 보라로 변환이.한 가지 방법은이 일을 패턴을 읽어됩니다 익스플로잇 :
(0 1) (1 2) (2 3) (3 4) ...
3 읽어 읽을 수 "있을 변환 읽기 0" "1과"저장 "을"읽기 2 사용 "1 저장되어있는"저장 프로 2를 사용하여 ...

이것을 실패, 그것은) 더 빠른 것 또는 (시계에 2 배 읽을 수 가능한 실행.다음주기에 따라 1 주소 2 수 읽기에서 2 시간 -주기.

또한, 사용중인 "write_enable"프로세스에서 모두 adc_clk와 CLK의.이세하지만, 이것에 대해서 경고를 당신에게 안주고이 디자인 연습 결국 것입니다 거의 항상 실패합니다.

마지막으로, temp_sum가 재설정 또는 초기화에 사용하지 않은 명백한.

 
@ 교환하다

많은에 대한 회신 고맙습니다.

왜 adc_clk 있어야하고 거기있을 CLK 두 문제에 대한면 사용 write_enable.속도 (adc_clk 낮은 나 amwriting 데이터를)와 CLK (읽고 그것을 빠른)도 그렇게 처리 시간을 충분히 가지고 나.

write_enable 작업을 제어하는 플래그 읽기 쓰기는 그냥.시뮬레이션을 옆에 내 번역 포스트는 완벽 해요.하지만 그렇다하더라도 생각하면 u는있는 솔루션은 무엇이 문제.

또한 사이클을 적 5 클럭에 temp_sum를 재설정 오전 원본 코드 나.

내가 coregen 통해 듀얼 포트 RAM을 사용했지만 사용 목적 이상 수가 있습니다 숫양은 저도 같이주는 문제를 사령탑의 모드는 어떤 확신 없습니다.등록일 분 후에 10 :mad: 교환하다
u 할 수있다면 시간을 가지고 u는 u plz 이상으로 응용 프로그램에 대한 FIFO를 사용하는 방법을 내게 보여 말했다.

 
hallovipin :
구축하는 방법에 대해 생각이다 FPGA를이 - 라우팅 구성을 많이의 일부가 작은 요소와 연결되어 함께.당신의 "write_enable"신호는 시간이 약간 다른 요소에 각각에 도착합니다.없이이도, 논리 지연에서 "write_enable"서로 다른 각각의 영향을 약간있을 등록이됩니다.다른 클럭 지연 약간 (동일한 효과를 위해).

하지만 경우 2, 확정되고, 다음 결과는 것입 시계는 안 갖고부터에 제약을 시스템 1MHz 시간 (예 이상의 확률을의 실패, 0.0001 %로 / 사이클이 높은 것입니다이 시간 동안 매우 짧은 실패를 의미 ).

이것은 차이를 의미합니다 위상 정의뿐만 아니라, 시계는해야 알려진, 합리적 관계를.그렇지 않으면에게서에 제약 조건은 어떤 의미가 없겠죠 없습니다.

내가 격려하려고하는 시스템은 당신이 당신의 무엇을 봐.시도, 새로운주기에 따라 1 독특한 읽기로 시스템을 그것을 변환하는 가치와 계산을 수행하기 위해 사용하는 몇 가지 가치를 이전에 읽어 보시기 바랍니다.

 
블록 RAM이 늘 ...... 20k시키십시오 블록 전체 메모리를 점유 여부에 사용하지하려고 시도하거나 숫양의 인스턴스를 2 만 -10 당신은 완벽한 블록 즉 문이 안 열려사용하여 .... 숫양을 작은 크기의 분산 구현 숫양을 주문한게 전부 제가 아는 ....5 월 문을 될 나의 잘못된 것입니다

 
@ umair

도 아니 숫양 같은 그 블록 부분적으로 사용할 수 있습니다.숫양 경우 블록 % 총 줄이기 난 65 소모 내 유일한 버퍼 오전 8K 전에서 크기로 4K.

수 있도록 작동 같은 블록 RAM이 그리 함께 어떻게 RAM을 배포하는 그룹.

 
난 .... 당신과 동의하지만 제 요점은 .. 당신에게 문이 안 열려 이식은 2 별도의 버퍼 또는 블록 숫양에서 동일한숫양을 구현하는 두 2K 블록과 블록을 볼 수 있는지 여부를 8K 둘 다 사용하여 1 8K를 차단하거나

 
@이 Umair ..

오 나의 ---.당신은 절대적으로 맞다.
지금은 악마가있어.

그것은 .... 빌드 나던 크기가 무슨 상관의 숫양이그것은 램 비트도 3에 대한 것입니다 소모 전체 블록을.
고맙습니다 많이 ...정말 절 도와 줬어요.
지금은 내 의지와 전략을 재고.등록일 분 후에 13 :결론은 :

u는 숫양 2 블록에 대해 하나의 RAM을하지만 u 개의 문이 안 열려 사용 단일 블록을 사용할 수 있습니다 2.

 

Welcome to EDABoard.com

Sponsor

Back
Top