blob: 45aef29cd218a1399c05da7aefc96d1598336529 [file] [log] [blame]
/******************************************************************************
** Logisim-evolution goes FPGA automatic generated Verilog code **
** https://github.com/logisim-evolution/ **
** **
** Component : int_memory **
** **
*****************************************************************************/
module int_memory( ADR0,
ADR1,
ADR2,
CLK,
DI0,
DI1,
DI2,
DI3,
DO0,
DO1,
DO2,
DO3,
EN,
WR );
/*******************************************************************************
** The inputs are defined here **
*******************************************************************************/
input ADR0;
input ADR1;
input ADR2;
input CLK;
input DI0;
input DI1;
input DI2;
input DI3;
input EN;
input WR;
/*******************************************************************************
** The outputs are defined here **
*******************************************************************************/
output DO0;
output DO1;
output DO2;
output DO3;
/*******************************************************************************
** The wires are defined here **
*******************************************************************************/
wire [3:0] s_logisimBus10;
wire [3:0] s_logisimBus17;
wire [3:0] s_logisimBus18;
wire [3:0] s_logisimBus23;
wire [3:0] s_logisimBus25;
wire [3:0] s_logisimBus26;
wire [3:0] s_logisimBus27;
wire [2:0] s_logisimBus29;
wire [3:0] s_logisimBus31;
wire [3:0] s_logisimBus32;
wire [3:0] s_logisimBus33;
wire [3:0] s_logisimBus34;
wire [3:0] s_logisimBus35;
wire [3:0] s_logisimBus42;
wire [3:0] s_logisimBus44;
wire [3:0] s_logisimBus45;
wire [3:0] s_logisimBus46;
wire [3:0] s_logisimBus47;
wire [3:0] s_logisimBus48;
wire [3:0] s_logisimBus49;
wire [3:0] s_logisimBus50;
wire [3:0] s_logisimBus51;
wire [3:0] s_logisimBus52;
wire [3:0] s_logisimBus6;
wire [3:0] s_logisimBus7;
wire s_logisimNet0;
wire s_logisimNet1;
wire s_logisimNet11;
wire s_logisimNet12;
wire s_logisimNet13;
wire s_logisimNet14;
wire s_logisimNet15;
wire s_logisimNet16;
wire s_logisimNet19;
wire s_logisimNet2;
wire s_logisimNet20;
wire s_logisimNet21;
wire s_logisimNet22;
wire s_logisimNet24;
wire s_logisimNet28;
wire s_logisimNet3;
wire s_logisimNet30;
wire s_logisimNet36;
wire s_logisimNet37;
wire s_logisimNet38;
wire s_logisimNet39;
wire s_logisimNet4;
wire s_logisimNet40;
wire s_logisimNet41;
wire s_logisimNet43;
wire s_logisimNet5;
wire s_logisimNet8;
wire s_logisimNet9;
/*******************************************************************************
** The module functionality is described here **
*******************************************************************************/
/*******************************************************************************
** Here all wiring is defined **
*******************************************************************************/
assign s_logisimBus31[0] = s_logisimNet12;
assign s_logisimBus31[1] = s_logisimNet12;
assign s_logisimBus31[2] = s_logisimNet12;
assign s_logisimBus31[3] = s_logisimNet12;
assign s_logisimBus47[0] = s_logisimNet1;
assign s_logisimBus47[1] = s_logisimNet1;
assign s_logisimBus47[2] = s_logisimNet1;
assign s_logisimBus47[3] = s_logisimNet1;
assign s_logisimBus48[0] = s_logisimNet0;
assign s_logisimBus48[1] = s_logisimNet0;
assign s_logisimBus48[2] = s_logisimNet0;
assign s_logisimBus48[3] = s_logisimNet0;
assign s_logisimBus49[0] = s_logisimNet2;
assign s_logisimBus49[1] = s_logisimNet2;
assign s_logisimBus49[2] = s_logisimNet2;
assign s_logisimBus49[3] = s_logisimNet2;
assign s_logisimBus50[0] = s_logisimNet3;
assign s_logisimBus50[1] = s_logisimNet3;
assign s_logisimBus50[2] = s_logisimNet3;
assign s_logisimBus50[3] = s_logisimNet3;
assign s_logisimBus51[0] = s_logisimNet4;
assign s_logisimBus51[1] = s_logisimNet4;
assign s_logisimBus51[2] = s_logisimNet4;
assign s_logisimBus51[3] = s_logisimNet4;
assign s_logisimBus52[0] = s_logisimNet11;
assign s_logisimBus52[1] = s_logisimNet11;
assign s_logisimBus52[2] = s_logisimNet11;
assign s_logisimBus52[3] = s_logisimNet11;
/*******************************************************************************
** Here all input connections are defined **
*******************************************************************************/
assign s_logisimBus26[0] = DI0;
assign s_logisimBus26[1] = DI1;
assign s_logisimBus26[2] = DI2;
assign s_logisimBus26[3] = DI3;
assign s_logisimBus29[0] = ADR0;
assign s_logisimBus29[1] = ADR1;
assign s_logisimBus29[2] = ADR2;
assign s_logisimNet12 = EN;
assign s_logisimNet43 = CLK;
assign s_logisimNet9 = WR;
/*******************************************************************************
** Here all output connections are defined **
*******************************************************************************/
assign DO0 = s_logisimBus35[0];
assign DO1 = s_logisimBus35[1];
assign DO2 = s_logisimBus35[2];
assign DO3 = s_logisimBus35[3];
/*******************************************************************************
** Here all in-lined components are defined **
*******************************************************************************/
// Constant
assign s_logisimNet16 = 1'b1;
/*******************************************************************************
** Here all normal components are defined **
*******************************************************************************/
AND_GATE_BUS #(.BubblesMask(2'b00),
.NrOfBits(4))
GATES_1 (.input1(s_logisimBus47[3:0]),
.input2(s_logisimBus44[3:0]),
.result(s_logisimBus17[3:0]));
AND_GATE_BUS #(.BubblesMask(2'b00),
.NrOfBits(4))
GATES_2 (.input1(s_logisimBus48[3:0]),
.input2(s_logisimBus32[3:0]),
.result(s_logisimBus7[3:0]));
AND_GATE_BUS #(.BubblesMask(2'b00),
.NrOfBits(4))
GATES_3 (.input1(s_logisimBus49[3:0]),
.input2(s_logisimBus45[3:0]),
.result(s_logisimBus18[3:0]));
AND_GATE_BUS #(.BubblesMask(2'b00),
.NrOfBits(4))
GATES_4 (.input1(s_logisimBus50[3:0]),
.input2(s_logisimBus33[3:0]),
.result(s_logisimBus10[3:0]));
AND_GATE_BUS #(.BubblesMask(2'b00),
.NrOfBits(4))
GATES_5 (.input1(s_logisimBus51[3:0]),
.input2(s_logisimBus34[3:0]),
.result(s_logisimBus27[3:0]));
AND_GATE_BUS #(.BubblesMask(2'b00),
.NrOfBits(4))
GATES_6 (.input1(s_logisimBus52[3:0]),
.input2(s_logisimBus46[3:0]),
.result(s_logisimBus25[3:0]));
OR_GATE_BUS #(.BubblesMask(2'b00),
.NrOfBits(4))
GATES_7 (.input1(s_logisimBus27[3:0]),
.input2(s_logisimBus25[3:0]),
.result(s_logisimBus6[3:0]));
OR_GATE_BUS_4_INPUTS #(.BubblesMask(4'h0),
.NrOfBits(4))
GATES_8 (.input1(s_logisimBus17[3:0]),
.input2(s_logisimBus7[3:0]),
.input3(s_logisimBus18[3:0]),
.input4(s_logisimBus10[3:0]),
.result(s_logisimBus42[3:0]));
OR_GATE_BUS #(.BubblesMask(2'b00),
.NrOfBits(4))
GATES_9 (.input1(s_logisimBus42[3:0]),
.input2(s_logisimBus6[3:0]),
.result(s_logisimBus23[3:0]));
AND_GATE_BUS #(.BubblesMask(2'b00),
.NrOfBits(4))
GATES_10 (.input1(s_logisimBus23[3:0]),
.input2(s_logisimBus31[3:0]),
.result(s_logisimBus35[3:0]));
AND_GATE #(.BubblesMask(2'b00))
GATES_11 (.input1(s_logisimNet12),
.input2(s_logisimNet43),
.result(s_logisimNet15));
AND_GATE #(.BubblesMask(2'b00))
GATES_12 (.input1(s_logisimNet15),
.input2(s_logisimNet11),
.result(s_logisimNet20));
AND_GATE #(.BubblesMask(2'b00))
GATES_13 (.input1(s_logisimNet15),
.input2(s_logisimNet1),
.result(s_logisimNet21));
AND_GATE #(.BubblesMask(2'b00))
GATES_14 (.input1(s_logisimNet15),
.input2(s_logisimNet0),
.result(s_logisimNet39));
AND_GATE #(.BubblesMask(2'b00))
GATES_15 (.input1(s_logisimNet15),
.input2(s_logisimNet2),
.result(s_logisimNet22));
AND_GATE #(.BubblesMask(2'b00))
GATES_16 (.input1(s_logisimNet15),
.input2(s_logisimNet3),
.result(s_logisimNet40));
AND_GATE #(.BubblesMask(2'b00))
GATES_17 (.input1(s_logisimNet15),
.input2(s_logisimNet4),
.result(s_logisimNet41));
Demultiplexer_8 PLEXERS_18 (.demuxIn(s_logisimNet16),
.demuxOut_0(s_logisimNet1),
.demuxOut_1(s_logisimNet0),
.demuxOut_2(s_logisimNet2),
.demuxOut_3(s_logisimNet3),
.demuxOut_4(s_logisimNet4),
.demuxOut_5(s_logisimNet11),
.demuxOut_6(),
.demuxOut_7(),
.enable(1'b1),
.sel(s_logisimBus29[2:0]));
REGISTER_FLIP_FLOP #(.invertClock(0),
.nrOfBits(4))
MEMORY_19 (.clock(s_logisimNet21),
.clockEnable(s_logisimNet9),
.d(s_logisimBus26[3:0]),
.q(s_logisimBus44[3:0]),
.reset(1'b0),
.tick(1'b1));
REGISTER_FLIP_FLOP #(.invertClock(0),
.nrOfBits(4))
MEMORY_20 (.clock(s_logisimNet39),
.clockEnable(s_logisimNet9),
.d(s_logisimBus26[3:0]),
.q(s_logisimBus32[3:0]),
.reset(1'b0),
.tick(1'b1));
REGISTER_FLIP_FLOP #(.invertClock(0),
.nrOfBits(4))
MEMORY_21 (.clock(s_logisimNet22),
.clockEnable(s_logisimNet9),
.d(s_logisimBus26[3:0]),
.q(s_logisimBus45[3:0]),
.reset(1'b0),
.tick(1'b1));
REGISTER_FLIP_FLOP #(.invertClock(0),
.nrOfBits(4))
MEMORY_22 (.clock(s_logisimNet40),
.clockEnable(s_logisimNet9),
.d(s_logisimBus26[3:0]),
.q(s_logisimBus33[3:0]),
.reset(1'b0),
.tick(1'b1));
REGISTER_FLIP_FLOP #(.invertClock(0),
.nrOfBits(4))
MEMORY_23 (.clock(s_logisimNet41),
.clockEnable(s_logisimNet9),
.d(s_logisimBus26[3:0]),
.q(s_logisimBus34[3:0]),
.reset(1'b0),
.tick(1'b1));
REGISTER_FLIP_FLOP #(.invertClock(0),
.nrOfBits(4))
MEMORY_24 (.clock(s_logisimNet20),
.clockEnable(s_logisimNet9),
.d(s_logisimBus26[3:0]),
.q(s_logisimBus46[3:0]),
.reset(1'b0),
.tick(1'b1));
endmodule