| // https://coredocs.s3.amazonaws.com/Libero/12_0_0/Tool/sf2_mlg.pdf | |
| module ADD2 ( | |
| input A, B, | |
| output Y | |
| ); | |
| assign Y = A & B; | |
| endmodule | |
| module ADD3 ( | |
| input A, B, C, | |
| output Y | |
| ); | |
| assign Y = A & B & C; | |
| endmodule | |
| module ADD4 ( | |
| input A, B, C, D, | |
| output Y | |
| ); | |
| assign Y = A & B & C & D; | |
| endmodule | |
| module CFG1 ( | |
| output Y, | |
| input A | |
| ); | |
| parameter [1:0] INIT = 2'h0; | |
| assign Y = INIT >> A; | |
| endmodule | |
| module CFG2 ( | |
| output Y, | |
| input A, | |
| input B | |
| ); | |
| parameter [3:0] INIT = 4'h0; | |
| assign Y = INIT >> {B, A}; | |
| endmodule | |
| module CFG3 ( | |
| output Y, | |
| input A, | |
| input B, | |
| input C | |
| ); | |
| parameter [7:0] INIT = 8'h0; | |
| assign Y = INIT >> {C, B, A}; | |
| endmodule | |
| module CFG4 ( | |
| output Y, | |
| input A, | |
| input B, | |
| input C, | |
| input D | |
| ); | |
| parameter [15:0] INIT = 16'h0; | |
| assign Y = INIT >> {D, C, B, A}; | |
| endmodule | |
| module BUFF ( | |
| input A, | |
| output Y | |
| ); | |
| assign Y = A; | |
| endmodule | |
| module BUFD ( | |
| input A, | |
| output Y | |
| ); | |
| assign Y = A; | |
| endmodule | |
| module CLKINT ( | |
| input A, | |
| output Y | |
| ); | |
| assign Y = A; | |
| endmodule | |
| module CLKINT_PRESERVE ( | |
| input A, | |
| output Y | |
| ); | |
| assign Y = A; | |
| endmodule | |
| module GCLKINT ( | |
| input A, EN, | |
| output Y | |
| ); | |
| assign Y = A & EN; | |
| endmodule | |
| module RCLKINT ( | |
| input A, | |
| output Y | |
| ); | |
| assign Y = A; | |
| endmodule | |
| module RGCLKINT ( | |
| input A, EN, | |
| output Y | |
| ); | |
| assign Y = A & EN; | |
| endmodule | |
| module SLE ( | |
| output Q, | |
| input ADn, | |
| input ALn, | |
| input CLK, | |
| input D, | |
| input LAT, | |
| input SD, | |
| input EN, | |
| input SLn | |
| ); | |
| reg q_latch, q_ff; | |
| always @(posedge CLK, negedge ALn) begin | |
| if (!ALn) begin | |
| q_ff <= !ADn; | |
| end else if (EN) begin | |
| if (!SLn) | |
| q_ff <= SD; | |
| else | |
| q_ff <= D; | |
| end | |
| end | |
| always @* begin | |
| if (!ALn) begin | |
| q_latch <= !ADn; | |
| end else if (CLK && EN) begin | |
| if (!SLn) | |
| q_ff <= SD; | |
| else | |
| q_ff <= D; | |
| end | |
| end | |
| assign Q = LAT ? q_latch : q_ff; | |
| endmodule | |
| // module AR1 | |
| // module FCEND_BUFF | |
| // module FCINIT_BUFF | |
| // module FLASH_FREEZE | |
| // module OSCILLATOR | |
| // module SYSRESET | |
| // module SYSCTRL_RESET_STATUS | |
| // module LIVE_PROBE_FB | |
| // module GCLKBUF | |
| // module GCLKBUF_DIFF | |
| // module GCLKBIBUF | |
| // module DFN1 | |
| // module DFN1C0 | |
| // module DFN1E1 | |
| // module DFN1E1C0 | |
| // module DFN1E1P0 | |
| // module DFN1P0 | |
| // module DLN1 | |
| // module DLN1C0 | |
| // module DLN1P0 | |
| module INV ( | |
| input A, | |
| output Y | |
| ); | |
| assign Y = !A; | |
| endmodule | |
| module INVD ( | |
| input A, | |
| output Y | |
| ); | |
| assign Y = !A; | |
| endmodule | |
| module MX2 ( | |
| input A, B, S, | |
| output Y | |
| ); | |
| assign Y = S ? B : A; | |
| endmodule | |
| module MX4 ( | |
| input D0, D1, D2, D3, S0, S1, | |
| output Y | |
| ); | |
| assign Y = S1 ? (S0 ? D3 : D2) : (S0 ? D1 : D0); | |
| endmodule | |
| module NAND2 ( | |
| input A, B, | |
| output Y | |
| ); | |
| assign Y = !(A & B); | |
| endmodule | |
| module NAND3 ( | |
| input A, B, C, | |
| output Y | |
| ); | |
| assign Y = !(A & B & C); | |
| endmodule | |
| module NAND4 ( | |
| input A, B, C, D, | |
| output Y | |
| ); | |
| assign Y = !(A & B & C & D); | |
| endmodule | |
| module NOR2 ( | |
| input A, B, | |
| output Y | |
| ); | |
| assign Y = !(A | B); | |
| endmodule | |
| module NOR3 ( | |
| input A, B, C, | |
| output Y | |
| ); | |
| assign Y = !(A | B | C); | |
| endmodule | |
| module NOR4 ( | |
| input A, B, C, D, | |
| output Y | |
| ); | |
| assign Y = !(A | B | C | D); | |
| endmodule | |
| module OR2 ( | |
| input A, B, | |
| output Y | |
| ); | |
| assign Y = A | B; | |
| endmodule | |
| module OR3 ( | |
| input A, B, C, | |
| output Y | |
| ); | |
| assign Y = A | B | C; | |
| endmodule | |
| module OR4 ( | |
| input A, B, C, D, | |
| output Y | |
| ); | |
| assign Y = A | B | C | D; | |
| endmodule | |
| module XOR2 ( | |
| input A, B, | |
| output Y | |
| ); | |
| assign Y = A ^ B; | |
| endmodule | |
| module XOR3 ( | |
| input A, B, C, | |
| output Y | |
| ); | |
| assign Y = A ^ B ^ C; | |
| endmodule | |
| module XOR4 ( | |
| input A, B, C, D, | |
| output Y | |
| ); | |
| assign Y = A ^ B ^ C ^ D; | |
| endmodule | |
| module XOR8 ( | |
| input A, B, C, D, E, F, G, H, | |
| output Y | |
| ); | |
| assign Y = A ^ B ^ C ^ D ^ E ^ F ^ G ^ H; | |
| endmodule | |
| // module UJTAG | |
| // module BIBUF | |
| // module BIBUF_DIFF | |
| // module CLKBIBUF | |
| module CLKBUF ( | |
| input PAD, | |
| output Y | |
| ); | |
| assign Y = PAD; | |
| endmodule | |
| // module CLKBUF_DIFF | |
| module INBUF ( | |
| input PAD, | |
| output Y | |
| ); | |
| assign Y = PAD; | |
| endmodule | |
| // module INBUF_DIFF | |
| module OUTBUF ( | |
| input D, | |
| output PAD | |
| ); | |
| assign PAD = D; | |
| endmodule | |
| // module OUTBUF_DIFF | |
| // module TRIBUFF | |
| // module TRIBUFF_DIFF | |
| // module DDR_IN | |
| // module DDR_OUT | |
| // module RAM1K18 | |
| // module RAM64x18 | |
| // module MACC |