1. IBUFDS
IBUFDS
用于实现差分输入缓冲器。IBUFDS
的主要作用是将外部的差分信号转换为单端信号,同时提供良好的信号完整性和噪声抑制能力。
VHDL示例:
entity my_design isPort ( diff_in_p : in std_logic; -- 差分信号正端diff_in_n : in std_logic; -- 差分信号负端single_out : out std_logic -- 单端输出);
end my_design;architecture Behavioral of my_design is
beginIBUFDS_inst: IBUFDSport map (O => single_out, -- 输出端I => diff_in_p, -- 差分正端IB => diff_in_n -- 差分负端);
end Behavioral;
Verilog示例:
module my_design(input wire diff_in_p, // 差分信号正端input wire diff_in_n, // 差分信号负端output reg single_out // 单端输出
);IBUFDS IBUFDS_inst (.O(single_out), // 输出端.I(diff_in_p), // 差分正端.IB(diff_in_n) // 差分负端);endmodule
diff_in_p
和diff_in_n
是差分对的两个输入端,而single_out
则是IBUFDS
缓冲器的单端输出。
2. OBUFDS
OBUFDS
是一种常用的原语(primitive),用于单端转差分输出。OBUFDS
是Output Buffer Differential Signaling的缩写,它提供了一个差分对输出,通常用于高速信号传输,以减少电磁干扰(EMI)和提高信号完整性。
VHDL示例:
entity my_design isport (data_in : in std_logic;diff_out_p: out std_logic; -- 差分信号正端diff_out_n: out std_logic -- 差分信号负端);
end entity;architecture behavioral of my_design is
beginOBUFDS_inst: OBUFDSport map (I => data_in, -- 输入数据O => diff_out_p, -- 正相输出OB => diff_out_n -- 负相输出);
end architecture;
Verilog示例:
module my_design(input wire data_in,output reg diff_out_p,output reg diff_out_n
);OBUFDS #(.DIFF_TERM('0) // 可选参数,控制终端电阻) OBUFDS_inst (.I(data_in), // 输入数据.O(diff_out_p), // 正相输出.OB(diff_out_n) // 负相输出);endmodule
🚀 获取工程代码及更多详细资料可点击链接进群领取,谢谢支持!👇
点击免费领取更多资料