1 |
80 |
olivier.gi |
`timescale 1 ns/100 ps
|
2 |
|
|
// Version: 9.0 SP1 9.0.2.9
|
3 |
|
|
|
4 |
|
|
|
5 |
|
|
module pmem_2kB(WD,RD,WEN,REN,WADDR,RADDR,RWCLK,RESET);
|
6 |
|
|
input [7:0] WD;
|
7 |
|
|
output [7:0] RD;
|
8 |
|
|
input WEN, REN;
|
9 |
|
|
input [10:0] WADDR, RADDR;
|
10 |
|
|
input RWCLK;
|
11 |
|
|
input RESET;
|
12 |
|
|
|
13 |
|
|
wire VCC, GND;
|
14 |
|
|
|
15 |
|
|
VCC VCC_1_net(.Y(VCC));
|
16 |
|
|
GND GND_1_net(.Y(GND));
|
17 |
81 |
olivier.gi |
RAM4K9 pmem_2kB_R0C0(.ADDRA11(GND), .ADDRA10(WADDR[10]),
|
18 |
80 |
olivier.gi |
.ADDRA9(WADDR[9]), .ADDRA8(WADDR[8]), .ADDRA7(WADDR[7]),
|
19 |
|
|
.ADDRA6(WADDR[6]), .ADDRA5(WADDR[5]), .ADDRA4(WADDR[4]),
|
20 |
|
|
.ADDRA3(WADDR[3]), .ADDRA2(WADDR[2]), .ADDRA1(WADDR[1]),
|
21 |
|
|
.ADDRA0(WADDR[0]), .ADDRB11(GND), .ADDRB10(RADDR[10]),
|
22 |
|
|
.ADDRB9(RADDR[9]), .ADDRB8(RADDR[8]), .ADDRB7(RADDR[7]),
|
23 |
|
|
.ADDRB6(RADDR[6]), .ADDRB5(RADDR[5]), .ADDRB4(RADDR[4]),
|
24 |
|
|
.ADDRB3(RADDR[3]), .ADDRB2(RADDR[2]), .ADDRB1(RADDR[1]),
|
25 |
|
|
.ADDRB0(RADDR[0]), .DINA8(GND), .DINA7(GND), .DINA6(GND),
|
26 |
|
|
.DINA5(GND), .DINA4(GND), .DINA3(GND), .DINA2(GND),
|
27 |
|
|
.DINA1(WD[1]), .DINA0(WD[0]), .DINB8(GND), .DINB7(GND),
|
28 |
|
|
.DINB6(GND), .DINB5(GND), .DINB4(GND), .DINB3(GND),
|
29 |
|
|
.DINB2(GND), .DINB1(GND), .DINB0(GND), .WIDTHA0(VCC),
|
30 |
|
|
.WIDTHA1(GND), .WIDTHB0(VCC), .WIDTHB1(GND), .PIPEA(GND),
|
31 |
|
|
.PIPEB(GND), .WMODEA(GND), .WMODEB(GND), .BLKA(WEN),
|
32 |
|
|
.BLKB(REN), .WENA(GND), .WENB(VCC), .CLKA(RWCLK), .CLKB(
|
33 |
|
|
RWCLK), .RESET(RESET), .DOUTA8(), .DOUTA7(), .DOUTA6(),
|
34 |
|
|
.DOUTA5(), .DOUTA4(), .DOUTA3(), .DOUTA2(), .DOUTA1(),
|
35 |
|
|
.DOUTA0(), .DOUTB8(), .DOUTB7(), .DOUTB6(), .DOUTB5(),
|
36 |
|
|
.DOUTB4(), .DOUTB3(), .DOUTB2(), .DOUTB1(RD[1]), .DOUTB0(
|
37 |
|
|
RD[0]));
|
38 |
81 |
olivier.gi |
RAM4K9 pmem_2kB_R0C1(.ADDRA11(GND), .ADDRA10(WADDR[10]),
|
39 |
80 |
olivier.gi |
.ADDRA9(WADDR[9]), .ADDRA8(WADDR[8]), .ADDRA7(WADDR[7]),
|
40 |
|
|
.ADDRA6(WADDR[6]), .ADDRA5(WADDR[5]), .ADDRA4(WADDR[4]),
|
41 |
|
|
.ADDRA3(WADDR[3]), .ADDRA2(WADDR[2]), .ADDRA1(WADDR[1]),
|
42 |
|
|
.ADDRA0(WADDR[0]), .ADDRB11(GND), .ADDRB10(RADDR[10]),
|
43 |
|
|
.ADDRB9(RADDR[9]), .ADDRB8(RADDR[8]), .ADDRB7(RADDR[7]),
|
44 |
|
|
.ADDRB6(RADDR[6]), .ADDRB5(RADDR[5]), .ADDRB4(RADDR[4]),
|
45 |
|
|
.ADDRB3(RADDR[3]), .ADDRB2(RADDR[2]), .ADDRB1(RADDR[1]),
|
46 |
|
|
.ADDRB0(RADDR[0]), .DINA8(GND), .DINA7(GND), .DINA6(GND),
|
47 |
|
|
.DINA5(GND), .DINA4(GND), .DINA3(GND), .DINA2(GND),
|
48 |
|
|
.DINA1(WD[3]), .DINA0(WD[2]), .DINB8(GND), .DINB7(GND),
|
49 |
|
|
.DINB6(GND), .DINB5(GND), .DINB4(GND), .DINB3(GND),
|
50 |
|
|
.DINB2(GND), .DINB1(GND), .DINB0(GND), .WIDTHA0(VCC),
|
51 |
|
|
.WIDTHA1(GND), .WIDTHB0(VCC), .WIDTHB1(GND), .PIPEA(GND),
|
52 |
|
|
.PIPEB(GND), .WMODEA(GND), .WMODEB(GND), .BLKA(WEN),
|
53 |
|
|
.BLKB(REN), .WENA(GND), .WENB(VCC), .CLKA(RWCLK), .CLKB(
|
54 |
|
|
RWCLK), .RESET(RESET), .DOUTA8(), .DOUTA7(), .DOUTA6(),
|
55 |
|
|
.DOUTA5(), .DOUTA4(), .DOUTA3(), .DOUTA2(), .DOUTA1(),
|
56 |
|
|
.DOUTA0(), .DOUTB8(), .DOUTB7(), .DOUTB6(), .DOUTB5(),
|
57 |
|
|
.DOUTB4(), .DOUTB3(), .DOUTB2(), .DOUTB1(RD[3]), .DOUTB0(
|
58 |
|
|
RD[2]));
|
59 |
81 |
olivier.gi |
RAM4K9 pmem_2kB_R0C3(.ADDRA11(GND), .ADDRA10(WADDR[10]),
|
60 |
80 |
olivier.gi |
.ADDRA9(WADDR[9]), .ADDRA8(WADDR[8]), .ADDRA7(WADDR[7]),
|
61 |
|
|
.ADDRA6(WADDR[6]), .ADDRA5(WADDR[5]), .ADDRA4(WADDR[4]),
|
62 |
|
|
.ADDRA3(WADDR[3]), .ADDRA2(WADDR[2]), .ADDRA1(WADDR[1]),
|
63 |
|
|
.ADDRA0(WADDR[0]), .ADDRB11(GND), .ADDRB10(RADDR[10]),
|
64 |
|
|
.ADDRB9(RADDR[9]), .ADDRB8(RADDR[8]), .ADDRB7(RADDR[7]),
|
65 |
|
|
.ADDRB6(RADDR[6]), .ADDRB5(RADDR[5]), .ADDRB4(RADDR[4]),
|
66 |
|
|
.ADDRB3(RADDR[3]), .ADDRB2(RADDR[2]), .ADDRB1(RADDR[1]),
|
67 |
|
|
.ADDRB0(RADDR[0]), .DINA8(GND), .DINA7(GND), .DINA6(GND),
|
68 |
|
|
.DINA5(GND), .DINA4(GND), .DINA3(GND), .DINA2(GND),
|
69 |
|
|
.DINA1(WD[7]), .DINA0(WD[6]), .DINB8(GND), .DINB7(GND),
|
70 |
|
|
.DINB6(GND), .DINB5(GND), .DINB4(GND), .DINB3(GND),
|
71 |
|
|
.DINB2(GND), .DINB1(GND), .DINB0(GND), .WIDTHA0(VCC),
|
72 |
|
|
.WIDTHA1(GND), .WIDTHB0(VCC), .WIDTHB1(GND), .PIPEA(GND),
|
73 |
|
|
.PIPEB(GND), .WMODEA(GND), .WMODEB(GND), .BLKA(WEN),
|
74 |
|
|
.BLKB(REN), .WENA(GND), .WENB(VCC), .CLKA(RWCLK), .CLKB(
|
75 |
|
|
RWCLK), .RESET(RESET), .DOUTA8(), .DOUTA7(), .DOUTA6(),
|
76 |
|
|
.DOUTA5(), .DOUTA4(), .DOUTA3(), .DOUTA2(), .DOUTA1(),
|
77 |
|
|
.DOUTA0(), .DOUTB8(), .DOUTB7(), .DOUTB6(), .DOUTB5(),
|
78 |
|
|
.DOUTB4(), .DOUTB3(), .DOUTB2(), .DOUTB1(RD[7]), .DOUTB0(
|
79 |
|
|
RD[6]));
|
80 |
81 |
olivier.gi |
RAM4K9 pmem_2kB_R0C2(.ADDRA11(GND), .ADDRA10(WADDR[10]),
|
81 |
80 |
olivier.gi |
.ADDRA9(WADDR[9]), .ADDRA8(WADDR[8]), .ADDRA7(WADDR[7]),
|
82 |
|
|
.ADDRA6(WADDR[6]), .ADDRA5(WADDR[5]), .ADDRA4(WADDR[4]),
|
83 |
|
|
.ADDRA3(WADDR[3]), .ADDRA2(WADDR[2]), .ADDRA1(WADDR[1]),
|
84 |
|
|
.ADDRA0(WADDR[0]), .ADDRB11(GND), .ADDRB10(RADDR[10]),
|
85 |
|
|
.ADDRB9(RADDR[9]), .ADDRB8(RADDR[8]), .ADDRB7(RADDR[7]),
|
86 |
|
|
.ADDRB6(RADDR[6]), .ADDRB5(RADDR[5]), .ADDRB4(RADDR[4]),
|
87 |
|
|
.ADDRB3(RADDR[3]), .ADDRB2(RADDR[2]), .ADDRB1(RADDR[1]),
|
88 |
|
|
.ADDRB0(RADDR[0]), .DINA8(GND), .DINA7(GND), .DINA6(GND),
|
89 |
|
|
.DINA5(GND), .DINA4(GND), .DINA3(GND), .DINA2(GND),
|
90 |
|
|
.DINA1(WD[5]), .DINA0(WD[4]), .DINB8(GND), .DINB7(GND),
|
91 |
|
|
.DINB6(GND), .DINB5(GND), .DINB4(GND), .DINB3(GND),
|
92 |
|
|
.DINB2(GND), .DINB1(GND), .DINB0(GND), .WIDTHA0(VCC),
|
93 |
|
|
.WIDTHA1(GND), .WIDTHB0(VCC), .WIDTHB1(GND), .PIPEA(GND),
|
94 |
|
|
.PIPEB(GND), .WMODEA(GND), .WMODEB(GND), .BLKA(WEN),
|
95 |
|
|
.BLKB(REN), .WENA(GND), .WENB(VCC), .CLKA(RWCLK), .CLKB(
|
96 |
|
|
RWCLK), .RESET(RESET), .DOUTA8(), .DOUTA7(), .DOUTA6(),
|
97 |
|
|
.DOUTA5(), .DOUTA4(), .DOUTA3(), .DOUTA2(), .DOUTA1(),
|
98 |
|
|
.DOUTA0(), .DOUTB8(), .DOUTB7(), .DOUTB6(), .DOUTB5(),
|
99 |
|
|
.DOUTB4(), .DOUTB3(), .DOUTB2(), .DOUTB1(RD[5]), .DOUTB0(
|
100 |
|
|
RD[4]));
|
101 |
|
|
|
102 |
|
|
endmodule
|