Xilinx原语

IOBUF

参考链接:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
// IOBUF: Single-ended Bi-directional Buffer

// All devices

// Xilinx HDL Language Template, version 2017.2


IOBUF #(
.DRIVE(12), // Specify the output drive strength
.IBUF_LOW_PWR("TRUE"), // Low Power - "TRUE", High Performance = "FALSE"
.IOSTANDARD("DEFAULT"), // Specify the I/O standard
.SLEW("SLOW") // Specify the output slew rate
) IOBUF_inst (
.O(O), // Buffer output
.IO(IO), // Buffer inout port (connect directly to top-level port)
.I(I), // Buffer input
.T(T) // 3-state enable input, high=input, low=output
);

1、当外部端口信号输入进FPGA内部逻辑时:

  • .O(): 括号内填写从inout口输入到FPGA内部的,供用户在内部逻辑使用的逻辑信号名
  • .IO():括号内填写顶层的inout端口信号名。
  • .I():括号内填写内部逻辑需要送至外部端口的信号(此时为高阻)
  • .T() : 括号内填写三态的控制信号,此时填写“1”表示外部输入有效
    • O()接口将外部IO端口的信号引入逻辑;// 3-state enable input, high=input(外部信号输入内部有效), low=output(内部信号输出到外部有效)

2、当内部FPGA内部逻辑信号输出到外部inout端口时:

  • .O(): 括号内填写从inout口输入到FPGA内部的,供用户在内部逻辑使用的逻辑信号名。(此时为高阻)
  • .IO():括号内填写顶层的inout端口信号名
  • .I() :括号内填写内部逻辑需要送至外部端口的信号
  • .T(): 括号内填写三态的控制信号,此时填写“0”,表示内部信号输出有效、

简单来说:

  • .IO():直接给到顶层
  • .O():接到内部,作为外部输入
  • .I():接到内部,作为内部输出
  • .T():接到内部,作为输入输出控制,0内部输出,1输入内部

img

image-20221102160155376

IBUFDS 差分输入

IBUFDS 原语用于将差分输入信号转化成标准单端信号,且可加入可选延迟。 在 IBUFDS 原语中,输入信号为 I、IB,一个为主,一个为从,二者相位相 反。 IBUFDS 的逻辑真值表如表 3-12 所列,其中“-*”表示输出维持上一次的输出 值,保持不变。

img

image-20221031153320314

OBUFDS 差分输出

IBUFGDS 时钟信号专用


本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!