不枉初心,砥砺前行

皮皮祥的博客

欢迎留言,评论

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

统计

FPGA inout 端口

最近在把zedboard的项目工程搬到性能更好的器件上,除了改zynq核和相应管脚外,还需要改几个inout端口和差分LVDS端口。本篇便对inout端口做一个小结。

FPGA设计中,大家常用的一般时input和output端口,且在vivado中默认为wire型。而inout端口,正如其名,即可以做输入,也可以做输出端口。其基础是一个三态门构建,由一个控制信号控制输入和输出。

用verilog描述为:

module three_state(
           din,
           ctr,
           dout        
);
input din,ctr;
ouput dout;

assign dout = (ctr)?1'bz:din;

endmodule

三态门表示存在高电平,低电平和高阻态三种状态,由control信号控制。高低电平大家都了解了,注重看看高阻态。百度解释为:

高阻态是一个数字电路里常见的术语,指的是电路的一种输出状态,既不是高电平也不是低电平,如果高阻态再输入下一级电路的话,对下级电路无任何影响,和没接一样,如果用万用表测的话有可能是高电平也有可能是低电平随它后面接的东西定的。

读完这段话,总结出以下信息:

1)高阻态对下级电路无任何影响,即高阻态不能作为输入了。

2)高阻态是高电平还是低电平是由它后面接的东西定,那说明它能被接,也即可以作为input端口。

那理解完毕,来看看inout端口的应用吧。代码选自ad9361 no-os HDL,为ADI工程师编写

module ad_iobuf ( 
  dio_t,
  dio_i,
  dio_o,
  dio_p);

  parameter     DATA_WIDTH = 1;

  input   [(DATA_WIDTH-1):0]  dio_t;
  input   [(DATA_WIDTH-1):0]  dio_i;
  output  [(DATA_WIDTH-1):0]  dio_o;
  inout   [(DATA_WIDTH-1):0]  dio_p;

  genvar n;
  generate
  for (n = 0; n < DATA_WIDTH; n = n + 1) begin: g_iobuf
  assign dio_o[n] = dio_p[n];
  assign dio_p[n] = (dio_t[n] == 1'b1) ? 1'bz : dio_i[n];
  end
  endgenerate

endmodule

经常看我写博客的都知道我喜欢用表格总结端口,这篇也不例外。

端口含义
dio_t 视为control
dio_i 视为din
dio_o 视为dout
dio_p 主角,控制inout端口方向

各端口含义如上表所示,该段代码含义为如果dio_t为低电平,dio_p=输入dio_i;

也即dio_o = dio_i,此时为inout端口为output属性;

当dio_t为高电平时,dio_p为高阻态,刚才分析过了,高阻态是高电平还是低电平由后面接的东西定,dio_p可以被外界驱动,视为input端口,也即dio_o会输出dio_p输入的值。

posted on   皮皮祥  阅读(196)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
历史上的今天:
2021-12-20 uart
2021-12-20 FPGA接口协议之PCIE
2021-12-20 FPGA实现网口通信的几种方式
2021-12-20 简要介绍各种接口协议和标准
2021-12-20 FPGA常用接口协议--UART
2021-12-20 vivado implementation执行时候报错:Unsupported PLLE2_ADV connectivity.......
2021-12-20 Xilinx FPGA配置clocking时钟动态相位输出
点击右上角即可分享
微信分享提示