Q&A
bram 생성 관련 질문 있습니다.
너무 오래전 글이라 너무 뒷북이긴 하지만 vivado에 있는 Templete코드 xilinx_true_dual_port_no_change_2_clock_ram으로 한번 lab12 구현해보았습니다. 테스트벤치 결과 잘 됩니다. dual_port_2_clock_ram # ( .RAM_WIDTH (MEM0_DATA_WIDTH ), // Specify RAM data width .RAM_DEPTH (MEM0_MEM_DEPTH ), // Specify RAM depth (number of entries) .RAM_PERFORMANCE ("LOW_LATENCY" ), // Select "HIGH_PERFORMANCE" or "LOW_LATENCY" .INIT_FILE ("" ) // Specify name/location of RAM initialization file if using one (leave blank if not) ) dual_port_2_clock_ram_inst ( // Core .addra ( ), // Port A address bus, width determined from RAM_DEPTH .ena ( ), // Port A RAM Enable, for additional power savings, disable port when not in use .regcea ( ), // Port A output register enable .wea ( ), // Port A write enable .douta ( ), // Port A RAM output data, width determined from RAM_WIDTH .dina ( ), // Port A RAM input data, width determined from RAM_WIDTH .clka ( ), // Port A clock .rsta ( ), // Port A output reset (does not affect memory contents) // Ctrl .addrb (mem0_addr1), // Port B address bus, width determined from RAM_DEPTH .enb (mem0_ce1 ), // Port B RAM Enable, for additional power savings, disable port when not in use .regceb (mem0_ce1 ), // Port B output register enable .web (mem0_we1 ), // Port B write enable .doutb (mem0_q1 ), // Port B RAM output data, width determined from RAM_WIDTH .dinb (mem0_d1 ), // Port B RAM input data, width determined from RAM_WIDTH .clkb (mem0_clk1 ), // Port B clock .rstb (mem0_rst1 ) // Port B output reset (does not affect memory contents) ); 이런식으로 instanciation 했구요 RAM_PERFORMANCE의 default값인 HIGH_PERFORMANCE로 하지 않고 LOW_LATENCY로 한 이유는 HIGH_PERFORMANCE로 하였을 경우에는 2클럭 더 늦게 나옵니다. low latency일 경우에는 1클럭 딜레이지만 high performance일 경우 2클럭 딜레이라고 코드에 써 있습니다. 제 프로젝트랑 소스코드입니다. 프로젝트 들어가서 run simulation누르시면 볼 수 있습니다. https://drive.google.com/file/d/1hljaATJFlQ2pbz08046E_j8vVR0-XFAh/view?usp=sharing 필요하신분들 참고 부탁드립니다!!
- いいね数
- 1
- コメント数
- 3
- 閲覧数
- 953

