| // 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 |