|
楼主 |
发表于 2021-9-16 14:49:09
|
显示全部楼层
生成的verilog代码如下:
module DBram(
input clock,
input reset,
input io_wen,
input [7:0] io_wrAddr,
input [7:0] io_wrData,
input io_ren,
input [7:0] io_rdAddr,
output [7:0] io_rdData
);
reg [7:0] mem [0:255]; // @[DBram.scala 17:16]
reg [31:0] _RAND_0;
wire [7:0] mem__T_1_data; // @[DBram.scala 17:16]
wire [7:0] mem__T_1_addr; // @[DBram.scala 17:16]
wire [7:0] mem__T_data; // @[DBram.scala 17:16]
wire [7:0] mem__T_addr; // @[DBram.scala 17:16]
wire mem__T_mask; // @[DBram.scala 17:16]
wire mem__T_en; // @[DBram.scala 17:16]
assign mem__T_1_addr = io_rdAddr;
assign mem__T_1_data = mem[mem__T_1_addr]; // @[DBram.scala 17:16]
assign mem__T_data = io_wrData;
assign mem__T_addr = io_wrAddr;
assign mem__T_mask = 1'h1;
assign mem__T_en = io_wen;
assign io_rdData = io_ren ? mem__T_1_data : 8'h0; // @[DBram.scala 23:13 DBram.scala 25:15]
`ifdef RANDOMIZE_GARBAGE_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_INVALID_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_REG_INIT
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_MEM_INIT
`define RANDOMIZE
`endif
`ifndef RANDOM
`define RANDOM $random
`endif
`ifdef RANDOMIZE_MEM_INIT
integer initvar;
`endif
`ifndef SYNTHESIS
initial begin
`ifdef RANDOMIZE
`ifdef INIT_RANDOM
`INIT_RANDOM
`endif
`ifndef VERILATOR
`ifdef RANDOMIZE_DELAY
#`RANDOMIZE_DELAY begin end
`else
#0.002 begin end
`endif
`endif
_RAND_0 = {1{`RANDOM}};
`ifdef RANDOMIZE_MEM_INIT
for (initvar = 0; initvar < 256; initvar = initvar+1)
mem[initvar] = _RAND_0[7:0];
`endif // RANDOMIZE_MEM_INIT
`endif // RANDOMIZE
end // initial
`endif // SYNTHESIS
always @(posedge clock) begin
if(mem__T_en & mem__T_mask) begin
mem[mem__T_addr] <= mem__T_data; // @[DBram.scala 17:16]
end
end
endmodule
|
|