我正在为Sparatn-6XilinxFPGA编写Verilog代码,我希望在“运行时”(特别是在单端和差分IO缓冲区之间)重新配置IO。
我已经阅读了UG381.pdf中的IO缓冲区原语列表,但似乎都是固定的、单端的或差动的(在垫侧)。
我尝试过实例化OBUF和OBUFDS,但没有办法将bufs的输出复制到一个pad中,或者在它们与pad的关联之前或作为其关联的一部分组合它们。正如您所预期的那样,连接相邻的pads以形成差分输出/输入似乎是完全隐藏的,但也因此似乎防止使用OBUF进行除微分功能以外的任何事情,因为它本身并不需要这样做……
我需要的设想是:
SELECTABLE_SINGLE_DIFF_OBUFDS #(
.IOSTANDARD ("LVDS_33")
) my_buf (
.I (my_signal), // logic input (fabric side)
.IO (diff_p_out), // Single ended o/p or Differential +ve (to pin)
.IOB (diff_n_out), // Differential -ve (to pin)
.MODE (my_mode == 1) // mode = 0, single ended output
// mode = 1, differential output
);当您实例化配置底层SelectIO块的差异功能的OBUF或OBUFDS时,我想要寻找的是从Verilog内部访问底层块的方法,这样我就可以从FPGA中的其他逻辑控制IO块的配置。
发布于 2019-08-08 11:08:33
只要您只需要差分输出,您可能就可以只使用两个单端注册输出,并将负输出反向驱动。
https://stackoverflow.com/questions/57362230
复制相似问题