123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990 |
- //
- // Fast local memory for the internal CPU.
- // This should be parameterized (again)...
- //
- module fast_mem
- #(
- parameter integer words_lg2,
- parameter data_file
- )
- (
- input rst_n,
- input clk,
- input write0,
- input read0,
- input [3:0] wstrb0,
- input [words_lg2-1:0] addr0,
- input [31:0] wdata0,
- output [31:0] rdata0,
- input write1,
- input read1,
- input [3:0] wstrb1,
- input [words_lg2-1:0] addr1,
- input [31:0] wdata1,
- output [31:0] rdata1
- );
- altsyncram ip (
- .aclr0 ( 1'b0 ),
- .clock0 ( clk ),
- .address_a ( addr0 ),
- .byteena_a ( wstrb0 ),
- .data_a ( wdata0 ),
- .rden_a ( read0 ),
- .wren_a ( write0 ),
- .q_a ( rdata0 ),
- .address_b ( addr1 ),
- .byteena_b ( wstrb1 ),
- .data_b ( wdata1 ),
- .rden_b ( read1 ),
- .wren_b ( write1 ),
- .q_b ( rdata1 ),
- // Unused signals
- .aclr1 (1'b0),
- .addressstall_a (1'b0),
- .addressstall_b (1'b0),
- .clock1 (1'b1),
- .clocken0 (1'b1),
- .clocken1 (1'b1),
- .clocken2 (1'b1),
- .clocken3 (1'b1),
- .eccstatus ());
- defparam
- ip.address_reg_b = "CLOCK0",
- ip.byteena_reg_b = "CLOCK0",
- ip.byte_size = 8,
- ip.clock_enable_input_a = "BYPASS",
- ip.clock_enable_input_b = "BYPASS",
- ip.clock_enable_output_a = "BYPASS",
- ip.clock_enable_output_b = "BYPASS",
- ip.indata_reg_b = "CLOCK0",
- ip.init_file = data_file,
- ip.intended_device_family = "Cyclone IV E",
- ip.lpm_type = "altsyncram",
- ip.numwords_a = 1 << words_lg2,
- ip.numwords_b = 1 << words_lg2,
- ip.operation_mode = "BIDIR_DUAL_PORT",
- ip.outdata_aclr_a = "CLEAR0",
- ip.outdata_aclr_b = "CLEAR0",
- ip.outdata_reg_a = "UNREGISTERED",
- ip.outdata_reg_b = "UNREGISTERED",
- ip.power_up_uninitialized = "FALSE",
- ip.read_during_write_mode_mixed_ports = "OLD_DATA",
- ip.read_during_write_mode_port_a = "OLD_DATA",
- ip.read_during_write_mode_port_b = "OLD_DATA",
- ip.widthad_a = words_lg2,
- ip.widthad_b = words_lg2,
- ip.width_a = 32,
- ip.width_b = 32,
- ip.width_byteena_a = 4,
- ip.width_byteena_b = 4,
- ip.wrcontrol_wraddress_reg_b = "CLOCK0";
- endmodule // fast_mem
|