⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 io_lvds_synopsys.v

📁 基于VHDL语言的低压差分接口规范的实现
💻 V
📖 第 1 页 / 共 3 页
字号:
// **************************
// Start of the Input Buffers
// Input Flip Flops  
// **************************

module IBUFDS_FD_LVDS (I,IB,C,Q);
input I, IB, C;
output Q;

// synopsys dc_script_begin
// set_dont_touch find(cell,"*")
// set_dont_touch current_design
// set_attribute FD IOB "true" -type string
// synopsys dc_script_end
wire I_w, IB_w;

FD off_p (.D(I_w), .C(C), .Q(Q));
IBUF_LVDS pad_p (.I(I),  .O(I_w));
IBUF_LVDS pad_n (.I(IB), .O(IB_w));
endmodule // IBUFDS_FD_LVDS

module IBUFDS_FDE_LVDS (I,IB,CE,C,Q);
input I, IB, CE, C;
output Q;

// synopsys dc_script_begin
// set_dont_touch find(cell,"*")
// set_dont_touch current_design
// set_attribute IBUFDS_FDE_LVDS IOB "true" -type string
// synopsys dc_script_end
wire I_w, IB_w;

FDE off_p (.D(I_w), .CE(CE), .C(C), .Q(Q));
IBUF_LVDS pad_p (.I(I),  .O(I_w));
IBUF_LVDS pad_n (.I(IB), .O(IB_w));

endmodule // IBUFDS_FDE_LVDS 

module IBUFDS_FDC_LVDS (I,IB,C,CLR,Q);
input I, IB, C, CLR;
output Q;

// synopsys dc_script_begin
// set_dont_touch find(cell,"*")
// set_dont_touch current_design
// set_attribute IBUFDS_FDC_LVDS IOB "true" -type string
// synopsys dc_script_end
wire I_w, IB_w;

FDC off_p (.D(I_w), .C(C), .CLR(CLR), .Q(Q));
IBUF_LVDS pad_p (.I(I),  .O(I_w));
IBUF_LVDS pad_n (.I(IB), .O(IB_w));

endmodule // IBUFDS_FDC_LVDS 

module IBUFDS_FDCE_LVDS (I,IB,CE,C,CLR,Q);
input I, IB, CE, C, CLR;
output Q;

// synopsys dc_script_begin
// set_dont_touch find(cell,"*")
// set_dont_touch current_design
// set_attribute IBUFDS_FDCE_LVDS IOB "true" -type string
// synopsys dc_script_end
wire I_w, IB_w;

FDCE off_p (.D(I_w), .CE(CE), .C(C), .CLR(CLR), .Q(Q));
IBUF_LVDS pad_p (.I(I),  .O(I_w));
IBUF_LVDS pad_n (.I(IB), .O(IB_w));

endmodule // IBUFDS_FDCE_LVDS

module IBUFDS_FDP_LVDS (I,IB,C,PRE,Q);
input I, IB, C, PRE;
output Q;

// synopsys dc_script_begin
// set_dont_touch find(cell,"*")
// set_dont_touch current_design
// set_attribute IBUFDS_FDP_LVDS IOB "true" -type string
// synopsys dc_script_end
wire I_w, IB_w;

FDP off_p (.D(I_w), .C(C), .PRE(PRE), .Q(Q));
IBUF_LVDS pad_p (.I(I),  .O(I_w));
IBUF_LVDS pad_n (.I(IB), .O(IB_w));

endmodule // IBUFDS_FDP_LVDS

module IBUFDS_FDPE_LVDS (I,IB,CE,C,PRE,Q);
input I, IB, CE, C, PRE;
output Q;

// synopsys dc_script_begin
// set_dont_touch find(cell,"*")
// set_dont_touch current_design
// set_attribute IBUFDS_FDPE_LVDS IOB "true" -type string
// synopsys dc_script_end
wire I_w, IB_w;

FDPE off_p (.D(I_w),   .CE(CE), .C(C), .PRE(PRE), .Q(Q));
IBUF_LVDS pad_p (.I(I),  .O(I_w));
IBUF_LVDS pad_n (.I(IB), .O(IB_w));

endmodule // IBUFDS_FDPE_LVDS

module IBUFDS_FDR_LVDS (I,IB,C,R,Q);
input I, IB, C, R;
output Q;

// synopsys dc_script_begin
// set_dont_touch find(cell,"*")
// set_dont_touch current_design
// set_attribute IBUFDS_FDR_LVDS IOB "true" -type string
// synopsys dc_script_end
wire I_w, IB_w;

FDR off_p (.D(I_w), .C(C), .R(R), .Q(Q));
IBUF_LVDS pad_p (.I(I),  .O(I_w));
IBUF_LVDS pad_n (.I(IB), .O(IB_w));

endmodule // IBUFDS_FDR_LVDS

module IBUFDS_FDRE_LVDS (I,IB,CE,C,R,Q);
input I, IB, CE, C, R;
output Q;

// synopsys dc_script_begin
// set_dont_touch find(cell,"*")
// set_dont_touch current_design
// set_attribute IBUFDS_FDRE_LVDS IOB "true" -type string
// synopsys dc_script_end
wire I_w, IB_w;

FDRE off_p (.D(I_w),   .CE(CE), .C(C), .R(R), .Q(Q));
IBUF_LVDS pad_p (.I(I),  .O(I_w));
IBUF_LVDS pad_n (.I(IB), .O(IB_w));

endmodule // IBUFDS_FDRE_LVDS

module IBUFDS_FDS_LVDS (I,IB,C,S,Q);
input I, IB, C, S;
output Q;

// synopsys dc_script_begin
// set_dont_touch find(cell,"*")
// set_dont_touch current_design
// set_attribute IBUFDS_FDS_LVDS IOB "true" -type string
// synopsys dc_script_end
wire I_w, IB_w;

FDS off_p (.D(I_w), .C(C), .S(S), .Q(Q));
IBUF_LVDS pad_p (.I(I),  .O(I_w));
IBUF_LVDS pad_n (.I(IB), .O(IB_w));

endmodule // IBUFDS_FDS_LVDS

module IBUFDS_FDSE_LVDS (I,IB,CE,C,S,Q);
input I, IB, CE, C, S;
output Q;

// synopsys dc_script_begin
// set_dont_touch find(cell,"*")
// set_dont_touch current_design
// set_attribute IBUFDS_FDSE_LVDS IOB "true" -type string
// synopsys dc_script_end
wire I_w, IB_w;

FDSE off_p (.D(I_w),   .CE(CE), .C(C), .S(S), .Q(Q));
IBUF_LVDS pad_p (.I(I),  .O(I_w));
IBUF_LVDS pad_n (.I(IB), .O(IB_w));

endmodule // IBUFDS_FDSE_LVDS

// *************
// Input Latches
// *************
module IBUFDS_LD_LVDS (I,IB,G,Q);
input I, IB, G;
output Q;

// synopsys dc_script_begin
// set_dont_touch find(cell,"*")
// set_dont_touch current_design
// set_attribute IBUFDS_LD_LVDS IOB "true" -type string
// synopsys dc_script_end
wire I_w, IB_w;

LD olatch_p (.D(I_w), .G(G), .Q(Q));
IBUF_LVDS pad_p (.I(I),  .O(I_w));
IBUF_LVDS pad_n (.I(IB), .O(IB_w));

endmodule // IBUFDS_LD_LVDS

module IBUFDS_LDE_LVDS (I,IB,GE,G,Q);
input I, IB, GE, G;
output Q;

// synopsys dc_script_begin
// set_dont_touch find(cell,"*")
// set_dont_touch current_design
// set_attribute IBUFDS_LDE_LVDS IOB "true" -type string
// synopsys dc_script_end
wire I_w, IB_w;

LDE olatch_p (.D(I_w), .GE(GE), .G(G), .Q(Q));
IBUF_LVDS pad_p (.I(I),  .O(I_w));
IBUF_LVDS pad_n (.I(IB), .O(IB_w));

endmodule // IBUFDS_LDE_LVDS 

module IBUFDS_LDC_LVDS (I,IB,G,CLR,Q);
input I, IB, G, CLR;
output Q;

// synopsys dc_script_begin
// set_dont_touch find(cell,"*")
// set_dont_touch current_design
// set_attribute IBUFDS_LDC_LVDS IOB "true" -type string
// synopsys dc_script_end
wire I_w, IB_w;

LDC olatch_p (.D(I_w), .G(G), .CLR(CLR), .Q(Q));
IBUF_LVDS pad_p (.I(I),  .O(I_w));
IBUF_LVDS pad_n (.I(IB), .O(IB_w));

endmodule // IBUFDS_LDC_LVDS 

module IBUFDS_LDCE_LVDS (I,IB,GE,G,CLR,Q);
input I, IB, GE, G, CLR;
output Q;

// synopsys dc_script_begin
// set_dont_touch find(cell,"*")
// set_dont_touch current_design
// set_attribute IBUFDS_LDCE_LVDS IOB "true" -type string
// synopsys dc_script_end
wire I_w, IB_w;

LDCE olatch_p (.D(I_w), .GE(GE), .G(G), .CLR(CLR), .Q(Q));
IBUF_LVDS pad_p (.I(I),  .O(I_w));
IBUF_LVDS pad_n (.I(IB), .O(IB_w));

endmodule // IBUFDS_LDCE_LVDS

module IBUFDS_LDP_LVDS (I,IB,G,PRE,Q);
input I, IB, G, PRE;
output Q;

// synopsys dc_script_begin
// set_dont_touch find(cell,"*")
// set_dont_touch current_design
// set_attribute IBUFDS_LDP_LVDS IOB "true" -type string
// synopsys dc_script_end
wire I_w, IB_w;

LDP olatch_p (.D(I_w), .G(G), .PRE(PRE), .Q(Q));
IBUF_LVDS pad_p (.I(I),  .O(I_w));
IBUF_LVDS pad_n (.I(IB), .O(IB_w));

endmodule // IBUFDS_LDP_LVDS

module IBUFDS_LDPE_LVDS (I,IB,GE,G,PRE,Q);
input I, IB, GE, G, PRE;
output Q;

// synopsys dc_script_begin
// set_dont_touch find(cell,"*")
// set_dont_touch current_design
// set_attribute IBUFDS_LDPE_LVDS IOB "true" -type string
// synopsys dc_script_end
wire I_w, IB_w;

LDPE olatch_p (.D(I_w),   .GE(GE), .G(G), .PRE(PRE), .Q(Q));
IBUF_LVDS pad_p (.I(I),  .O(I_w));
IBUF_LVDS pad_n (.I(IB), .O(IB_w));

endmodule // IBUFDS_LDPE_LVDS

// ***************************
// Start of the Output Buffers
// Output Flipflops
// ***************************

module OBUFDS_FD_LVDS (D,C,O,OB);
input D, C;
output O,OB;

// synopsys dc_script_begin
// set_dont_touch find(cell,"*") 
// set_dont_touch current_design
// set_attribute OBUFDS_FD_LVDS IOB "true" -type string
// synopsys dc_script_end
wire D_n,q_p,q_n;
wire CLR = 0; // Used to ensure that p and n are opposite on reset

INV  inv_n (.I(D), .O(D_n));
FDC off_p (.D(D), .C(C), .CLR(CLR), .Q(q_p));
FDP off_n (.D(D_n), .C(C), .PRE(CLR), .Q(q_n));
OBUF_LVDS pad_p (.I(q_p), .O(O));
OBUF_LVDS pad_n (.I(q_n), .O(OB));

endmodule // OBUFDS_FD_LVDS

module OBUFDS_FDE_LVDS (D,CE,C,O,OB);
input D, CE, C;
output O,OB;

// synopsys dc_script_begin
// set_dont_touch find(cell,"*") 
// set_dont_touch current_design
// set_attribute OBUFDS_FDE_LVDS IOB "true" -type string
// synopsys dc_script_end
wire D_n,q_p,q_n;
wire CLR = 0; // Used to ensure that p and n are opposite on reset

INV  inv_n (.I(D), .O(D_n));
FDCE off_p (.D(D),   .CE(CE), .C(C), .CLR(CLR), .Q(q_p));
FDPE off_n (.D(D_n), .CE(CE), .C(C), .PRE(CLR), .Q(q_n));
OBUF_LVDS pad_p (.I(q_p), .O(O));
OBUF_LVDS pad_n (.I(q_n), .O(OB));

endmodule // OBUFDS_FDE_LVDS

module OBUFDS_FDC_LVDS (D,C,CLR,O,OB);
input D, C, CLR;
output O,OB;

// synopsys dc_script_begin
// set_dont_touch find(cell,"*") 
// set_dont_touch current_design
// set_attribute OBUFDS_FDC_LVDS IOB "true" -type string
// synopsys dc_script_end
wire D_n,q_p,q_n;

INV  inv_n (.I(D), .O(D_n));
FDC off_p (.D(D),   .C(C), .CLR(CLR), .Q(q_p));
FDP off_n (.D(D_n), .C(C), .PRE(CLR), .Q(q_n));
OBUF_LVDS pad_p (.I(q_p), .O(O));
OBUF_LVDS pad_n (.I(q_n), .O(OB));

endmodule // OBUFDS_FDC_LVDS

module OBUFDS_FDCE_LVDS (D,CE,C,CLR,O,OB);
input D, CE, C, CLR;
output O,OB;

// synopsys dc_script_begin
// set_dont_touch find(cell,"*") 
// set_dont_touch current_design
// set_attribute OBUFDS_FDCE_LVDS IOB "true" -type string
// synopsys dc_script_end
wire D_n,q_p,q_n;

INV  inv_n (.I(D), .O(D_n));
FDCE off_p (.D(D),   .CE(CE), .C(C), .CLR(CLR), .Q(q_p));
FDPE off_n (.D(D_n), .CE(CE), .C(C), .PRE(CLR), .Q(q_n));
OBUF_LVDS pad_p (.I(q_p), .O(O));
OBUF_LVDS pad_n (.I(q_n), .O(OB));

endmodule // OBUFDS_FDCE_LVDS

module OBUFDS_FDP_LVDS (D,C,PRE,O,OB);
input D, C, PRE;
output O,OB;

// synopsys dc_script_begin
// set_dont_touch find(cell,"*") 
// set_dont_touch current_design
// set_attribute OBUFDS_FDP_LVDS IOB "true" -type string
// synopsys dc_script_end
wire D_n,q_p,q_n;

INV  inv_n (.I(D), .O(D_n));
FDP off_p (.D(D),   .C(C), .PRE(PRE), .Q(q_p));
FDC off_n (.D(D_n), .C(C), .CLR(PRE), .Q(q_n));
OBUF_LVDS pad_p (.I(q_p), .O(O));
OBUF_LVDS pad_n (.I(q_n), .O(OB));

endmodule // OBUFDS_FDP_LVDS

module OBUFDS_FDPE_LVDS (D,CE,C,PRE,O,OB);
input D, CE, C, PRE;
output O,OB;

// synopsys dc_script_begin
// set_dont_touch find(cell,"*") 
// set_dont_touch current_design
// set_attribute OBUFDS_FDPE_LVDS IOB "true" -type string
// synopsys dc_script_end
wire D_n,q_p,q_n;

INV  inv_n (.I(D), .O(D_n));
FDPE off_p (.D(D),   .CE(CE), .C(C), .PRE(PRE), .Q(q_p));
FDCE off_n (.D(D_n), .CE(CE), .C(C), .CLR(PRE), .Q(q_n));
OBUF_LVDS pad_p (.I(q_p), .O(O));
OBUF_LVDS pad_n (.I(q_n), .O(OB));

endmodule // OBUFDS_FDPE_LVDS

module OBUFDS_FDR_LVDS (D,C,R,O,OB);
input D, C, R;
output O,OB;

// synopsys dc_script_begin
// set_dont_touch find(cell,"*") 
// set_dont_touch current_design
// set_attribute OBUFDS_FDR_LVDS IOB "true" -type string
// synopsys dc_script_end
wire D_n,q_p,q_n;

INV  inv_n (.I(D), .O(D_n));
FDR off_p (.D(D),   .C(C), .R(R), .Q(q_p));
FDS off_n (.D(D_n), .C(C), .S(R), .Q(q_n));
OBUF_LVDS pad_p (.I(q_p), .O(O));
OBUF_LVDS pad_n (.I(q_n), .O(OB));

endmodule // OBUFDS_FDR_LVDS

module OBUFDS_FDRE_LVDS (D,CE,C,R,O,OB);
input D, CE, C, R;
output O,OB;

// synopsys dc_script_begin
// set_dont_touch find(cell,"*") 
// set_dont_touch current_design
// set_attribute OBUFDS_FDRE_LVDS IOB "true" -type string
// synopsys dc_script_end
wire D_n,q_p,q_n;

INV  inv_n (.I(D), .O(D_n));
FDRE off_p (.D(D),   .CE(CE), .C(C), .R(R), .Q(q_p));
FDSE off_n (.D(D_n), .CE(CE), .C(C), .S(R), .Q(q_n));
OBUF_LVDS pad_p (.I(q_p), .O(O));
OBUF_LVDS pad_n (.I(q_n), .O(OB));

endmodule // OBUFDS_FDRE_LVDS

module OBUFDS_FDS_LVDS (D,C,S,O,OB);
input D, C, S;
output O,OB;

// synopsys dc_script_begin
// set_dont_touch find(cell,"*") 
// set_dont_touch current_design
// set_attribute OBUFDS_FDS_LVDS IOB "true" -type string

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -