자일링스 FPGA를의 블록 RAM이

X

xtcx

Guest
FPGA를 사용하여 내 프로젝트 중 하나에서, 논리 게이트의 98 % 이상의 직업을 가지고있다. 선과 program.I의 라인은 결코 블록 RAM을 사용. 내 프로그램에서 나는 배열 많이 있습니다. 난 블록 RAM을 사용하여 시도 그래서과로 구성된 "읽기 전용". 그래서 자일링스 이세 8.2i와 함께 제공 코어 생성기 도구에서 메모리 편집기를 사용하여 몇 가지 addr 위치에 일부 데이터의를 ROM에 저장할 수있었습니다. 하지만, 아주 잘 이제 프로그램에서 데이터를 읽을 수 있었다 테 결과 로직 게이트 제약 지금은 단지 97%되었다. 난 16.My 프로그램의 깊이와 8 비트 데이타의 약 7 배열을 제거 그것은 박살 약 1800 lines.Perhaps입니다 좀 경우 - 다른 문장이 프로그램에 일부 200 라인을 줄이고 내 expectations.No의 impovement.Later는 비율은 일부 35 % 할인되었습니다. 놀랍지 아직 surprising.So 왜 제약 비율을 줄이려고하지 않습니다 RAM을 사용하여 제거 배열 ?.... 스파르타 3 (400K) - 내 자일링스 버전 (역시 8.2i에 시도) FPGA에 7.1i입니다. 난 블록 RAM이 IPCORE의 program.Please 여기 도움을 제공합니다 사용 : 울게 :.... 이유 블록 RAM이 나의 게이트 패키지 크기를 줄이는 ?.:?:되지 않는 이유
 
당신은 블록 RAM은 실제로 sythesized되고시겠습니까? 그것은 나타나지 않지만 합성 (또는 합성 보고서에)?
 
일 가능성이 당신이 당신의 배열에 대한 분산 RAM을 사용했을 수도있다. 이세는 방식 코드에 따라 RAM을 배포 대상. 내가 스파르타 인은 3 일 LUT에 데이터의 16 비트를 저장할 수있을 것 같아요. 그래서, 8 비트 데이터의 7 배열은 8 LUTs을 섭취했을 수도 있습니다. 그래서, 당신은 BRAMs 타겟 때, 당신을 많이 구하지 않았지?
 
내 opnion에서는 결과가 확인됩니다. 첫째, 너무 많은 다른 경우에는 두번째 많은 조각 리소스를 소비합니다, LUT가로 RAM을 배포할 구성할 수있는 이러한 변화는 8x16 RAM은 LUT로 implimented 수 효과적입니다. 7 배열은 그 비율이 많이 변경하지 않는 이유, 여러 LUT를 소비
 
당신은 ( "blk_mem_ram.mif"mem을 8'h00, 8'hff)이 초기 $ readmemb 하드웨어 기술 언어 코드를 작성해야한다 항상 @은 (posedge clk)는 경우에는 시작 (mem_rd_en) mem_data_out를 시작
 
당신의 답변 주셔서 감사합니다 ... 우선 내가 이세 8.2i 팩과 함께 제공 자일링스의 IP 코어 생성기 도구를 사용하는 것을 말할 필요가 있습니다. 제가 차단 램 IP를 선택하고 모드를 쓰기 읽기 선택하고 너비를 입력하고 깊이 그리고 그 램 파일을 생성. 이 후, 난 내 최고 module.From의 구성 요소 나 IP를 저장하거나 데이터를 검색할 생성 자일링스의 포트 밖으로 addr과 데이터와 데이터를 사용하여 내 프로그램으로 구조적인 부분이 파일을 추가했습니다. 제가 차단 - RAM은 내 프로그램에 어떤 구문을 사용하지 않았다. 그래서 내가 확실히 분산 RAM을 사용하지 않는되었다 같네요. 또한 프로그램이 정상적으로 작동합니다. 그러나 이상적으로 그들의 project.My 단점에 대한 블록 RAM을 사용하여 어떤 ...하지만 내 친구들을 위해, 사람들이 더 그들의 제약 비율을 감소도 도움이 안 했어요 램에 배열 데이터를 이동 전 사용한다는 너무 많습니다 라고 확인하고 많은 경우 - 다른 통계를위한 몇 가지 40-50 플래그여. 이것은 prob 것일까?. 또한 게이트 사용량을 줄이고? 도움이 될 패키지 또는 함수를 사용하여. 도와주세요
 

Welcome to EDABoard.com

Sponsor

Back
Top