Line 41... |
Line 41... |
//// from http://www.opencores.org/lgpl.shtml ////
|
//// from http://www.opencores.org/lgpl.shtml ////
|
//// ////
|
//// ////
|
////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////
|
|
|
`include "timescale.v"
|
`include "timescale.v"
|
|
`include "stubs.v"
|
|
|
module t6507lp_io(clk, reset_n, data_in, rw_mem, data_out, address);
|
module t6507lp_io(vdd, gnd, clk, reset_n, data_in, rw_mem, data_out, address, clkIO, reset_nIO, data_inIO, rw_memIO, data_outIO, addressIO);
|
parameter [3:0] DATA_SIZE = 4'd8;
|
parameter [3:0] DATA_SIZE = 4'd8;
|
parameter [3:0] ADDR_SIZE = 4'd13;
|
parameter [3:0] ADDR_SIZE = 4'd13;
|
|
|
localparam [3:0] DATA_SIZE_ = DATA_SIZE - 4'b0001;
|
localparam [3:0] DATA_SIZE_ = DATA_SIZE - 4'b0001;
|
localparam [3:0] ADDR_SIZE_ = ADDR_SIZE - 4'b0001;
|
localparam [3:0] ADDR_SIZE_ = ADDR_SIZE - 4'b0001;
|
|
|
|
input vdd;
|
|
input gnd;
|
|
|
input clk;
|
input clk;
|
|
output clkIO;
|
|
|
input reset_n;
|
input reset_n;
|
|
output reset_nIO;
|
|
|
input [DATA_SIZE_:0] data_in;
|
input [DATA_SIZE_:0] data_in;
|
output rw_mem;
|
output [DATA_SIZE_:0] data_inIO;
|
output [DATA_SIZE_:0] data_out;
|
|
output [ADDR_SIZE_:0] address;
|
input rw_mem;
|
|
output rw_memIO;
|
t6507lp #(DATA_SIZE, ADDR_SIZE) t6507lp(
|
|
.clk (clk),
|
input [DATA_SIZE_:0] data_out;
|
.reset_n (reset_n),
|
output [DATA_SIZE_:0] data_outIO;
|
.data_in (data_in),
|
|
.address (address),
|
input [ADDR_SIZE_:0] address;
|
.rw_mem (rw_mem),
|
output [ADDR_SIZE_:0] addressIO;
|
.data_out (data_out)
|
|
|
// the ICP cell format is PAD PI Y PO
|
|
ICP clk_pad(
|
|
.PI (gnd),
|
|
.PO (gnd),
|
|
.PAD (clk),
|
|
.Y (clkIO)
|
|
);
|
|
|
|
ICP reset_n_pad(
|
|
.PI (gnd),
|
|
.PO (gnd),
|
|
.PAD (reset_n),
|
|
.Y (reset_nIO)
|
|
);
|
|
|
|
ICP data_in_pad0(
|
|
.PI (gnd),
|
|
.PO (gnd),
|
|
.PAD (data_in[0]),
|
|
.Y (data_inIO[0])
|
|
);
|
|
|
|
ICP data_in_pad1(
|
|
.PI (gnd),
|
|
.PO (gnd),
|
|
.PAD (data_in[1]),
|
|
.Y (data_inIO[1])
|
|
);
|
|
|
|
ICP data_in_pad2(
|
|
.PI (gnd),
|
|
.PO (gnd),
|
|
.PAD (data_in[2]),
|
|
.Y (data_inIO[2])
|
|
);
|
|
|
|
ICP data_in_pad3(
|
|
.PI (gnd),
|
|
.PO (gnd),
|
|
.PAD (data_in[3]),
|
|
.Y (data_inIO[3])
|
|
);
|
|
|
|
ICP data_in_pad4(
|
|
.PI (gnd),
|
|
.PO (gnd),
|
|
.PAD (data_in[4]),
|
|
.Y (data_inIO[4])
|
|
);
|
|
|
|
ICP data_in_pad5(
|
|
.PI (gnd),
|
|
.PO (gnd),
|
|
.PAD (data_in[5]),
|
|
.Y (data_inIO[5])
|
|
);
|
|
|
|
ICP data_in_pad6(
|
|
.PI (gnd),
|
|
.PO (gnd),
|
|
.PAD (data_in[6]),
|
|
.Y (data_inIO[6])
|
|
);
|
|
|
|
ICP data_in_pad7(
|
|
.PI (gnd),
|
|
.PO (gnd),
|
|
.PAD (data_in[7]),
|
|
.Y (data_inIO[7])
|
|
);
|
|
|
|
BBT16P rw_mem_pad(
|
|
.EN (gnd),
|
|
.PAD (rw_memIO),
|
|
.A (rw_mem)
|
|
);
|
|
|
|
BBT16P data_out_pad0(
|
|
.EN (gnd),
|
|
.PAD (data_outIO[0]),
|
|
.A (data_out[0])
|
|
);
|
|
|
|
BBT16P data_out_pad1(
|
|
.EN (gnd),
|
|
.PAD (data_outIO[1]),
|
|
.A (data_out[1])
|
|
);
|
|
|
|
BBT16P data_out_pad2(
|
|
.EN (gnd),
|
|
.PAD (data_outIO[2]),
|
|
.A (data_out[2])
|
|
);
|
|
|
|
BBT16P data_out_pad3(
|
|
.EN (gnd),
|
|
.PAD (data_outIO[3]),
|
|
.A (data_out[3])
|
|
);
|
|
|
|
BBT16P data_out_pad4(
|
|
.EN (gnd),
|
|
.PAD (data_outIO[4]),
|
|
.A (data_out[4])
|
|
);
|
|
|
|
BBT16P data_out_pad5(
|
|
.EN (gnd),
|
|
.PAD (data_outIO[5]),
|
|
.A (data_out[5])
|
|
);
|
|
|
|
BBT16P data_out_pad6(
|
|
.EN (gnd),
|
|
.PAD (data_outIO[6]),
|
|
.A (data_out[6])
|
|
);
|
|
|
|
BBT16P data_out_pad7(
|
|
.EN (gnd),
|
|
.PAD (data_outIO[7]),
|
|
.A (data_out[7])
|
|
);
|
|
|
|
BBT16P adress_pad0(
|
|
.EN (gnd),
|
|
.PAD (addressIO[0]),
|
|
.A (address[0])
|
|
);
|
|
|
|
BBT16P adress_pad1(
|
|
.EN (gnd),
|
|
.PAD (addressIO[1]),
|
|
.A (address[1])
|
|
);
|
|
|
|
BBT16P adress_pad2(
|
|
.EN (gnd),
|
|
.PAD (addressIO[2]),
|
|
.A (address[2])
|
|
);
|
|
|
|
BBT16P adress_pad3(
|
|
.EN (gnd),
|
|
.PAD (addressIO[3]),
|
|
.A (address[3])
|
|
);
|
|
|
|
BBT16P adress_pad4(
|
|
.EN (gnd),
|
|
.PAD (addressIO[4]),
|
|
.A (address[4])
|
|
);
|
|
|
|
BBT16P adress_pad5(
|
|
.EN (gnd),
|
|
.PAD (addressIO[5]),
|
|
.A (address[5])
|
|
);
|
|
|
|
BBT16P adress_pad6(
|
|
.EN (gnd),
|
|
.PAD (addressIO[6]),
|
|
.A (address[6])
|
|
);
|
|
|
|
BBT16P adress_pad7(
|
|
.EN (gnd),
|
|
.PAD (addressIO[7]),
|
|
.A (address[7])
|
|
);
|
|
|
|
BBT16P adress_pad8(
|
|
.EN (gnd),
|
|
.PAD (addressIO[8]),
|
|
.A (address[8])
|
|
);
|
|
|
|
BBT16P adress_pad9(
|
|
.EN (gnd),
|
|
.PAD (addressIO[9]),
|
|
.A (address[9])
|
|
);
|
|
|
|
BBT16P adress_pad10(
|
|
.EN (gnd),
|
|
.PAD (addressIO[10]),
|
|
.A (address[10])
|
|
);
|
|
|
|
BBT16P adress_pad11(
|
|
.EN (gnd),
|
|
.PAD (addressIO[11]),
|
|
.A (address[11])
|
|
);
|
|
|
|
BBT16P adress_pad12(
|
|
.EN (gnd),
|
|
.PAD (addressIO[12]),
|
|
.A (address[12])
|
);
|
);
|
|
|
endmodule
|
endmodule
|
|
|
|
|