万恶的Uram
1 年前
· 来自专栏
FPGA日常笔记
Uram 是一个好东西~~~~可以类比为一个特大号Ram。
在平常需要使用非常多的缓存存数据,但是又没到要用到DDR的时候,可以用这个东西~~~来使用。
正常情况下,我会用XPM来例化。
localparam DELAY = 25;
localparam WIDTH = 17;
localparam MEM_SIZE = 131_072 * 64 ;
xpm_memory_tdpram #(
.ADDR_WIDTH_A ( WIDTH ), // DECIMAL
.ADDR_WIDTH_B ( WIDTH ), // DECIMAL
.AUTO_SLEEP_TIME ( 0 ), // DECIMAL
.BYTE_WRITE_WIDTH_A ( 64 ), // DECIMAL
.BYTE_WRITE_WIDTH_B ( 64 ), // DECIMAL
.CLOCKING_MODE ( "common_clock" ), // String
.ECC_MODE ( "no_ecc" ), // String
.MEMORY_INIT_FILE ( "none" ), // String
.MEMORY_INIT_PARAM ( "0" ), // String
.MEMORY_OPTIMIZATION ( "true" ), // String
.MEMORY_PRIMITIVE ( "ultra" ), // String
.MEMORY_SIZE ( MEM_SIZE ), // DECIMAL
.MESSAGE_CONTROL ( 0 ), // DECIMAL
.READ_DATA_WIDTH_A ( 64 ), // DECIMAL
.READ_DATA_WIDTH_B ( 64 ), // DECIMAL
.READ_LATENCY_A ( DELAY ), // DECIMAL
.READ_LATENCY_B ( DELAY ), // DECIMAL
.READ_RESET_VALUE_A ( "0" ), // String
.READ_RESET_VALUE_B ( "0" ), // String
.USE_EMBEDDED_CONSTRAINT ( 0 ), // DECIMAL
.USE_MEM_INIT ( 1 ), // DECIMAL
.WAKEUP_TIME ( "disable_sleep" ), // String
.WRITE_DATA_WIDTH_A ( 64 ), // DECIMAL
.WRITE_DATA_WIDTH_B ( 64 ), // DECIMAL
.WRITE_MODE_A ( "no_change" ), // String
.WRITE_MODE_B ( "no_change" ) // String
uram (
.clka ( clk ),
.addra ( 'h0 ),// ADDR_WIDTH_A-bit input: Address for port A write and read operations.
.ena ( 'h0 ),
.wea ( 'h0 ),
.dina ( 'h0 ),// WRITE_DATA_WIDTH_A-bit input: Data input for port A write operations.
.douta ( ),// READ_DATA_WIDTH_A-bit output: Data output for port A read operations.
.clkb ( clk ),
.addrb ( uram_addr[WIDTH-1:0] ),// ADDR_WIDTH_B-bit input: Address for port B write and read operations.
.enb ( 1'b1 ),
.web ( uram_we ),
.dinb ( uram_din ),// WRITE_DATA_WIDTH_B-bit input: Data input for port B write operations.
.doutb ( uram_dout ),// READ_DATA_WIDTH_B-bit output: Data output for port B read operations.
.injectdbiterra ( 1'b0 ),
.injectdbiterrb ( 1'b0 ),
.injectsbiterra ( 1'b0 ),
.injectsbiterrb ( 1'b0 ),
.regcea ( 1'b1 ),
.regceb ( 1'b1 ),
.rsta ( 1'b0 ),
.rstb ( 1'b0 ),
.sleep ( 1'b0 ), // 1-bit input: sleep signal to enable the dynamic power saving feature.