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

📄 io_lvds_synopsys.v

📁 基于VHDL语言的低压差分接口规范的实现
💻 V
📖 第 1 页 / 共 3 页
字号:
// synopsys dc_script_end
wire D_n,q_p,q_n,t_p,t_n;

INV  inv_n (.I(D), .O(D_n));
LDCE olatch_p (.D(D),   .GE(GE), .G(G), .CLR(CLR), .Q(q_p));
LDPE olatch_n (.D(D_n), .GE(GE), .G(G), .PRE(CLR), .Q(q_n));
LDPE tri_p (.D(T),   .GE(GE), .G(G), .PRE(CLR), .Q(t_p));
LDPE tri_n (.D(T),   .GE(GE), .G(G), .PRE(CLR), .Q(t_n));
OBUFT_LVDS pad_p (.I(q_p), .T(t_p), .O(O));
OBUFT_LVDS pad_n (.I(q_n), .T(t_n), .O(OB));

endmodule // OBUFTDS_LDCE_LVDS

module OBUFTDS_LDP_LVDS (D,T,G,PRE,O,OB);
input D, T, G, PRE;
output O,OB;

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

INV  inv_n (.I(D), .O(D_n));
LDP olatch_p (.D(D),   .G(G), .PRE(PRE), .Q(q_p));
LDC olatch_n (.D(D_n), .G(G), .CLR(PRE), .Q(q_n));
LDP tri_p (.D(T),   .G(G), .PRE(PRE), .Q(t_p));
LDP tri_n (.D(T),   .G(G), .PRE(PRE), .Q(t_n));
OBUFT_LVDS pad_p (.I(q_p), .T(t_p), .O(O));
OBUFT_LVDS pad_n (.I(q_n), .T(t_n), .O(OB));

endmodule // OBUFTDS_LDP_LVDS

module OBUFTDS_LDPE_LVDS (D,T,GE,G,PRE,O,OB);
input D, T, GE, G, PRE;
output O,OB;

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

INV  inv_n (.I(D), .O(D_n));
LDPE olatch_p (.D(D),   .GE(GE), .G(G), .PRE(PRE), .Q(q_p));
LDCE olatch_n (.D(D_n), .GE(GE), .G(G), .CLR(PRE), .Q(q_n));
LDPE tri_p (.D(T),   .GE(GE), .G(G), .PRE(PRE), .Q(t_p));
LDPE tri_n (.D(T),   .GE(GE), .G(G), .PRE(PRE), .Q(t_n));
OBUFT_LVDS pad_p (.I(q_p), .T(t_p), .O(O));
OBUFT_LVDS pad_n (.I(q_n), .T(t_n), .O(OB));

endmodule // OBUFTDS_LDPE_LVDS

// *********************************
// Start of the Input/Output Buffers
// IO Buffer Flipflops
// *********************************

module IOBUFDS_FD_LVDS (D,T,C,Q,IO,IOB);
input D, T, C;
output Q;
inout IO,IOB;

// synopsys dc_script_begin
// set_dont_touch find(cell,"*")
// set_dont_touch current_design
// set_attribute IOBUFDS_FD_LVDS IOB "true" -type string
// synopsys dc_script_end
wire D_n,q_p,q_n,t_p,t_n,i_p;
wire CLR = 0;

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));
FDP tri_p (.D(T),   .C(C), .PRE(CLR), .Q(t_p));
FDP tri_n (.D(T),   .C(C), .PRE(CLR), .Q(t_n));
FDC iff_p (.D(i_p), .C(C), .CLR(CLR), .Q(Q));
IOBUF_LVDS pad_p (.I(q_p), .T(t_p), .O(i_p), .IO(IO));
IOBUF_LVDS pad_n (.I(q_n), .T(t_n), .O()   , .IO(IOB));

endmodule // IOBUFDS_FD_LVDS

module IOBUFDS_FDE_LVDS (D,T,CE,C,Q,IO,IOB);
input D, T, CE, C;
output Q;
inout IO,IOB;

// synopsys dc_script_begin
// set_dont_touch find(cell,"*")
// set_dont_touch current_design
// set_attribute IOBUFDS_FDE_LVDS IOB "true" -type string
// synopsys dc_script_end
wire D_n,q_p,q_n,t_p,t_n,i_p;
wire CLR = 0;

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));
FDPE tri_p (.D(T),   .CE(CE), .C(C), .PRE(CLR), .Q(t_p));
FDPE tri_n (.D(T),   .CE(CE), .C(C), .PRE(CLR), .Q(t_n));
FDCE iff_p (.D(i_p), .CE(CE), .C(C), .CLR(CLR), .Q(Q));
IOBUF_LVDS pad_p (.I(q_p), .T(t_p), .O(i_p), .IO(IO));
IOBUF_LVDS pad_n (.I(q_n), .T(t_n), .O()   , .IO(IOB));

endmodule // IOBUFDS_FDE_LVDS

module IOBUFDS_FDC_LVDS (D,T,C,CLR,Q,IO,IOB);
input D, T, C, CLR;
output Q;
inout IO,IOB;

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

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));
FDP tri_p (.D(T),   .C(C), .PRE(CLR), .Q(t_p));
FDP tri_n (.D(T),   .C(C), .PRE(CLR), .Q(t_n));
FDC iff_p (.D(i_p), .C(C), .CLR(CLR), .Q(Q));
IOBUF_LVDS pad_p (.I(q_p), .T(t_p), .O(i_p), .IO(IO));
IOBUF_LVDS pad_n (.I(q_n), .T(t_n), .O()   , .IO(IOB));

endmodule // IOBUFDS_FDC_LVDS

module IOBUFDS_FDCE_LVDS (D,T,CE,C,CLR,Q,IO,IOB);
input D, T, CE, C, CLR;
output Q;
inout IO,IOB;

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

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));
FDPE tri_p (.D(T),   .CE(CE), .C(C), .PRE(CLR), .Q(t_p));
FDPE tri_n (.D(T),   .CE(CE), .C(C), .PRE(CLR), .Q(t_n));
FDCE iff_p (.D(i_p), .CE(CE), .C(C), .CLR(CLR), .Q(Q));
IOBUF_LVDS pad_p (.I(q_p), .T(t_p), .O(i_p), .IO(IO));
IOBUF_LVDS pad_n (.I(q_n), .T(t_n), .O()   , .IO(IOB));

endmodule // IOBUFDS_FDCE_LVDS

module IOBUFDS_FDP_LVDS (D,T,C,PRE,Q,IO,IOB);
input D, T, C, PRE;
output Q;
inout IO,IOB;

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

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));
FDP tri_p (.D(T),   .C(C), .PRE(PRE), .Q(t_p));
FDP tri_n (.D(T),   .C(C), .PRE(PRE), .Q(t_n));
FDP iff_p (.D(i_p), .C(C), .PRE(PRE), .Q(Q));
IOBUF_LVDS pad_p (.I(q_p), .T(t_p), .O(i_p), .IO(IO));
IOBUF_LVDS pad_n (.I(q_n), .T(t_n), .O()   , .IO(IOB));

endmodule // IOBUFDS_FDP_LVDS

module IOBUFDS_FDPE_LVDS (D,T,CE,C,PRE,Q,IO,IOB);
input D, T, CE, C, PRE;
output Q;
inout IO,IOB;

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

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));
FDPE tri_p (.D(T),   .CE(CE), .C(C), .PRE(PRE), .Q(t_p));
FDPE tri_n (.D(T),   .CE(CE), .C(C), .PRE(PRE), .Q(t_n));
FDPE iff_p (.D(i_p), .CE(CE), .C(C), .PRE(PRE), .Q(Q));
IOBUF_LVDS pad_p (.I(q_p), .T(t_p), .O(i_p), .IO(IO));
IOBUF_LVDS pad_n (.I(q_n), .T(t_n), .O()   , .IO(IOB));

endmodule // IOBUFDS_FDPE_LVDS

module IOBUFDS_FDR_LVDS (D,T,C,R,Q,IO,IOB);
input D, T, C, R;
output Q;
inout IO,IOB;

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

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));
FDS tri_p (.D(T),   .C(C), .S(R), .Q(t_p));
FDS tri_n (.D(T),   .C(C), .S(R), .Q(t_n));
FDR iff_p (.D(i_p), .C(C), .R(R), .Q(Q));
IOBUF_LVDS pad_p (.I(q_p), .T(t_p), .O(i_p), .IO(IO));
IOBUF_LVDS pad_n (.I(q_n), .T(t_n), .O()   , .IO(IOB));

endmodule // IOBUFDS_FDR_LVDS

module IOBUFDS_FDRE_LVDS (D,T,CE,C,R,Q,IO,IOB);
input D, T, CE, C, R;
output Q;
inout IO,IOB;

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

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));
FDSE tri_p (.D(T),   .CE(CE), .C(C), .S(R), .Q(t_p));
FDSE tri_n (.D(T),   .CE(CE), .C(C), .S(R), .Q(t_n));
FDRE iff_p (.D(i_p), .CE(CE), .C(C), .R(R), .Q(Q));
IOBUF_LVDS pad_p (.I(q_p), .T(t_p), .O(i_p), .IO(IO));
IOBUF_LVDS pad_n (.I(q_n), .T(t_n), .O()   , .IO(IOB));

endmodule // IOBUFDS_FDRE_LVDS

module IOBUFDS_FDS_LVDS (D,T,C,S,Q,IO,IOB);
input D, T, C, S;
output Q;
inout IO,IOB;

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

INV  inv_n (.I(D), .O(D_n));
FDS off_p (.D(D),   .C(C), .S(S), .Q(q_p));
FDR off_n (.D(D_n), .C(C), .R(S), .Q(q_n));
FDS tri_p (.D(T),   .C(C), .S(S), .Q(t_p));
FDS tri_n (.D(T),   .C(C), .S(S), .Q(t_n));
FDS iff_p (.D(i_p), .C(C), .S(S), .Q(Q));
IOBUF_LVDS pad_p (.I(q_p), .T(t_p), .O(i_p), .IO(IO));
IOBUF_LVDS pad_n (.I(q_n), .T(t_n), .O()   , .IO(IOB));

endmodule // IOBUFDS_FDS_LVDS

module IOBUFDS_FDSE_LVDS (D,T,CE,C,S,Q,IO,IOB);
input D, T, CE, C, S;
output Q;
inout IO,IOB;

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

INV  inv_n (.I(D), .O(D_n));
FDSE off_p (.D(D),   .CE(CE), .C(C), .S(S), .Q(q_p));
FDRE off_n (.D(D_n), .CE(CE), .C(C), .R(S), .Q(q_n));
FDSE tri_p (.D(T),   .CE(CE), .C(C), .S(S), .Q(t_p));
FDSE tri_n (.D(T),   .CE(CE), .C(C), .S(S), .Q(t_n));
FDSE iff_p (.D(i_p), .CE(CE), .C(C), .S(S), .Q(Q));
IOBUF_LVDS pad_p (.I(q_p), .T(t_p), .O(i_p), .IO(IO));
IOBUF_LVDS pad_n (.I(q_n), .T(t_n), .O()   , .IO(IOB));

endmodule // IOBUFDS_FDSE_LVDS

// ***************
// IO Buffer Latch
// ***************
module IOBUFDS_LD_LVDS (D,T,G,Q,IO,IOB);
input D, T, G;
output Q;
inout IO,IOB;

// synopsys dc_script_begin
// set_dont_touch find(cell,"*")
// set_dont_touch current_design
// set_attribute IOBUFDS_LD_LVDS IOB "true" -type string
// synopsys dc_script_end
wire D_n,q_p,q_n,t_p,t_n,i_p;
wire CLR = 0;

INV  inv_n (.I(D), .O(D_n));
LDC olatch_p (.D(D),   .G(G), .CLR(CLR), .Q(q_p));
LDP olatch_n (.D(D_n), .G(G), .PRE(CLR), .Q(q_n));
LDP tri_p (.D(T),   .G(G), .PRE(CLR), .Q(t_p));
LDP tri_n (.D(T),   .G(G), .PRE(CLR), .Q(t_n));
LDC ilatch_p (.D(i_p), .G(G), .CLR(CLR), .Q(Q));
IOBUF_LVDS pad_p (.I(q_p), .T(t_p), .O(i_p), .IO(IO));
IOBUF_LVDS pad_n (.I(q_n), .T(t_n), .O()   , .IO(IOB));

endmodule // IOBUFDS_LD_LVDS

module IOBUFDS_LDE_LVDS (D,T,GE,G,Q,IO,IOB);
input D, T, GE, G;
output Q;
inout IO,IOB;

// synopsys dc_script_begin
// set_dont_touch find(cell,"*")
// set_dont_touch current_design
// set_attribute IOBUFDS_LDE_LVDS IOB "true" -type string
// synopsys dc_script_end
wire D_n,q_p,q_n,t_p,t_n,i_p;
wire CLR = 0;

INV  inv_n (.I(D), .O(D_n));
LDCE olatch_p (.D(D),   .GE(GE), .G(G), .CLR(CLR), .Q(q_p));
LDPE olatch_n (.D(D_n), .GE(GE), .G(G), .PRE(CLR), .Q(q_n));
LDPE tri_p (.D(T),   .GE(GE), .G(G), .PRE(CLR), .Q(t_p));
LDPE tri_n (.D(T),   .GE(GE), .G(G), .PRE(CLR), .Q(t_n));
LDCE ilatch_p (.D(i_p), .GE(GE), .G(G), .CLR(CLR), .Q(Q));
IOBUF_LVDS pad_p (.I(q_p), .T(t_p), .O(i_p), .IO(IO));
IOBUF_LVDS pad_n (.I(q_n), .T(t_n), .O()   , .IO(IOB));

endmodule // IOBUFDS_LDE_LVDS

module IOBUFDS_LDC_LVDS (D,T,G,CLR,Q,IO,IOB);
input D, T, G, CLR;
output Q;
inout IO,IOB;

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

INV  inv_n (.I(D), .O(D_n));
LDC olatch_p (.D(D),   .G(G), .CLR(CLR), .Q(q_p));
LDP olatch_n (.D(D_n), .G(G), .PRE(CLR), .Q(q_n));
LDP tri_p (.D(T),   .G(G), .PRE(CLR), .Q(t_p));
LDP tri_n (.D(T),   .G(G), .PRE(CLR), .Q(t_n));
LDC ilatch_p (.D(i_p), .G(G), .CLR(CLR), .Q(Q));
IOBUF_LVDS pad_p (.I(q_p), .T(t_p), .O(i_p), .IO(IO));
IOBUF_LVDS pad_n (.I(q_n), .T(t_n), .O()   , .IO(IOB));

endmodule // IOBUFDS_LDC_LVDS

module IOBUFDS_LDCE_LVDS (D,T,GE,G,CLR,Q,IO,IOB);
input D, T, GE, G, CLR;
output Q;
inout IO,IOB;

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

INV  inv_n (.I(D), .O(D_n));
LDCE olatch_p (.D(D),   .GE(GE), .G(G), .CLR(CLR), .Q(q_p));
LDPE olatch_n (.D(D_n), .GE(GE), .G(G), .PRE(CLR), .Q(q_n));
LDPE tri_p (.D(T),   .GE(GE), .G(G), .PRE(CLR), .Q(t_p));
LDPE tri_n (.D(T),   .GE(GE), .G(G), .PRE(CLR), .Q(t_n));
LDCE ilatch_p (.D(i_p), .GE(GE), .G(G), .CLR(CLR), .Q(Q));
IOBUF_LVDS pad_p (.I(q_p), .T(t_p), .O(i_p), .IO(IO));
IOBUF_LVDS pad_n (.I(q_n), .T(t_n), .O()   , .IO(IOB));

endmodule // IOBUFDS_LDCE_LVDS

module IOBUFDS_LDP_LVDS (D,T,G,PRE,Q,IO,IOB);
input D, T, G, PRE;
output Q;
inout IO,IOB;

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

INV  inv_n (.I(D), .O(D_n));
LDPE olatch_p (.D(D),   .G(G), .PRE(PRE), .Q(q_p));
LDCE olatch_n (.D(D_n), .G(G), .CLR(PRE), .Q(q_n));
LDPE tri_p (.D(T),   .G(G), .PRE(PRE), .Q(t_p));
LDPE tri_n (.D(T),   .G(G), .PRE(PRE), .Q(t_n));
LDPE ilatch_p (.D(i_p), .G(G), .PRE(PRE), .Q(Q));
IOBUF_LVDS pad_p (.I(q_p), .T(t_p), .O(i_p), .IO(IO));
IOBUF_LVDS pad_n (.I(q_n), .T(t_n), .O()   , .IO(IOB));

endmodule // IOBUFDS_LDP_LVDS

module IOBUFDS_LDPE_LVDS (D,T,GE,G,PRE,Q,IO,IOB);
input D, T, GE, G, PRE;
output Q;
inout IO,IOB;

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

INV  inv_n (.I(D), .O(D_n));
LDPE olatch_p (.D(D),   .GE(GE), .G(G), .PRE(PRE), .Q(q_p));
LDCE olatch_n (.D(D_n), .GE(GE), .G(G), .CLR(PRE), .Q(q_n));
LDPE tri_p (.D(T),   .GE(GE), .G(G), .PRE(PRE), .Q(t_p));
LDPE tri_n (.D(T),   .GE(GE), .G(G), .PRE(PRE), .Q(t_n));
LDPE ilatch_p (.D(i_p), .GE(GE), .G(G), .PRE(PRE), .Q(Q));
IOBUF_LVDS pad_p (.I(q_p), .T(t_p), .O(i_p), .IO(IO));
IOBUF_LVDS pad_n (.I(q_n), .T(t_n), .O()   , .IO(IOB));

endmodule // IOBUFDS_LDPE_LVDS









⌨️ 快捷键说明

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