输入端口可以由wire/reg驱动,但输入端口只能是wire;输出端口可以使wire/reg类型,输出端口只能驱动wire;若输出端口在过程块中赋值则为reg型,若在过程块外赋值则为net型。用关键词inout声明一个双向端口, inout端口不能声明为reg类型,只能是wire类型;输入和双向端口不能声明为寄存器类型。

INOUT引脚:

1.FPGA IO在做输入时,可以用作高阻态,这就是所说的高阻输入;

2.FPGA IO在做输出时,则可以直接用来输入输出。

芯片外部引脚很多都使用inout类型的,为的是节省管腿。就是一个端口同时做输入和输出。 inout在具体实现上一般用三态门来实现。三态门的第三个状态就是高阻'Z'。当inout端口不输出时,将三态门置高阻。这样信号就不会因为两端同时输出而出错了,更详细的内容可以搜索一下三态门tri-state的资料.
1 使用inout类型数据,可以用如下写法:
inout data;
reg data_in;
reg data_out;

//data为输出时
reg en_output;
assign data_inout=en_output?data_out:1'bz;//en_output控制三态门
//对于data_out,可以通过组合逻辑或者时序逻辑根据data对其赋值.通过控制en_output的高低电平,从而设置data是输出数据还是处于高阻态,如果处于高阻态,则此时当作输入端口使用.en_output可以通过相关电路来控制.
2 编写测试模块时,对于inout类型的端口,需要定义成wire类型变量,而其它输入端口都定义成reg类型,这两者是有区别的.
当上面例子中的data_inout用作输入时,需要赋值给data_inout,其余情况可以断开.

此时可以用assign语句实现:assign data_inout=link?data_in_t:1'bz;

其中的link ,data_in_t是reg类型变量,在测试模块中赋值.

另外,可以设置一个输出端口观察data_inout用作输出的情况:
Wire data_out;
Assign data_out_t=(!link)?data_inout:1'bz;

但要注意给data_inout赋值的时候,link选通信号如何给呢?

首先测试文件给源文件的data_inout数据赋值,那只能在原INOUT数据为高阻态的时候才可以赋值,故link信号即该INOUT数据为高阻太时的控制信号。

当不需要测试文件给你data_inout数据赋值的时候,测试文件的data_inout接口因为高阻态,从而不影响源文件data_inout接口的其他操作。

FPGA中inout端口使用方法总结相关推荐

  1. Verilog中inout端口的使用方法

    Verilog中inout端口的使用方法 (本文中所有Verilog描述仅为展示inout端口的用法,实际描述则需要更丰富的功能描述) Inout端口的使用 在芯片中为了管脚复用,很多管脚都是双向的, ...

  2. FPGA设计中inout端口信号的仿真测试

    inout端口作为输入输出口,其在综合中以三态门的硬件形式而存在.但在波形仿真中,其具有输入输出性质就需要特别的操作手法才可以观察到正确的仿真波形. 在inout端口信号的仿真中,测试激励文件中Ino ...

  3. 双向端口inout端口

    verilog里如何处理io成双向 在查阅了各种书和帖子之后,总结了以下inout端口的使用注意事项. (以下资料来源: <Xilinx FPGA开发实用教程 第二版> https://w ...

  4. 6.Inout双向端口信号处理方法

    Verilog中inout端口的使用方法 (本文中所有Verilog描述仅为展示inout端口的用法,实际描述则需要更丰富的功能描述) Inout端口的使用 在芯片中为了管脚复用,很多管脚都是双向的, ...

  5. FPGA中双向IO端口的应用

    FPGA 是现场可编程门阵列的缩写,它是在PAL,GAL 及 EPLD 等可编程器件的基础上发展起来的.FPGA 具有速度快.密度高.功耗小的特点.采用 FPGA 芯片进行专用集成电路设计,既可以解决 ...

  6. linux 扫描开放的端口命令,在Linux系统中检查(扫描)开放端口的方法

    无论是对网络连接问题进行故障排除还是配置防火墙,首先要检查的是在系统上实际打开的端口,本文介绍几种查找系统外部打开端口的方法,即在Linux系统中检查(扫描)开放端口. 什么是开放端口 侦听端口是应用 ...

  7. win10 设备管理器中没端口选项解决方法

    win10 设备管理器中没端口选项是怎么回事? 解决方法: 被隐藏了,点击上面的查看,勾选显示隐藏的设备就可以找到端口了 转载来源:https://zhidao.baidu.com/question/ ...

  8. verilog中的inout端口与三态门、高阻态的使用

    高阻态 百度百科:高阻态是一个数字电路里常见的术语,指的是电路的一种输出状态,既不是高电平也不是低电平,如果高阻态再输入下一级电路的话,对下级电路无任何影响,和没接一样,如果用万用表测的话有可能是高电 ...

  9. 基于PCIe的NVMe协议在FPGA中实现方法

    NVMe协议是工作在PCIE的最上层协议层的,故需要先搞清楚PCIE.本文基于Xilinx的UltraScale+,开发工具为Vivado2021.2.学习中以spec为主,其它资料辅助参考(重点介绍 ...

最新文章

  1. matlab 绘制方格网格(二维)
  2. 解决无扬声器(无喇叭)的HDMI接口显示屏声音问题
  3. [Linux] 不带JRE版本的LumaQQ安装方法
  4. python画图代码星星-Python中turtle作图示例
  5. 如何使linux中java支持中文
  6. java:lock锁
  7. 临床研究中的基因组学、药物基因组学、蛋白质组学和转录组学 Omics in Clinical Practice: Genomics, Pharmacogenomics, Proteomics, and
  8. sqlserver 字符转数值_PLC根据寄存器数值查询MySQL/SQLServer数据库,将数据到寄存器...
  9. Storing CGPoint, CGSize and CGRect in Collections with NSValue
  10. jstat查看JVM的GC情况
  11. Web开发编程语言是最适合新手的吗-开课吧
  12. python数据库-mongoDB的高级查询操作(55)
  13. 【Python实例第27讲】增量PCA
  14. 2021-07-03父传递子,子传递父,选项激活自定义组件
  15. 行亦谦ACM自闭之旅第七周
  16. ODC:在线深度聚类的无监督表示学习
  17. 支付宝企业付款PHP版本(转账到支付宝账户)
  18. ucenter与其它应用结合时出现通信失败,ucenter应用原理与调试
  19. 靶场练习--春秋云境-Certify
  20. python快速数据分析_收藏 | 10个可以快速用Python进行数据分析的小技巧

热门文章

  1. 数据库SQL入门学习
  2. Android8.0通知栏适配全面解析
  3. 辗转相除法(欧几里得算法)
  4. su [user] 和 su - [user]的区别
  5. Push failed: Unable to access ‘https://github.com........
  6. c语言指针面试经典选择题及答案,C语言指针经典练习题-及答案
  7. 在查找预编译头时遇到意外的文件结尾。是否忘记了向源中添加“#include pch.h”?
  8. Java环境下GDAL / OGR环境配置与入门
  9. 抗混叠滤波器 - ADC前端放大器和RC滤波器设计实现步骤
  10. 计算机睡眠后键盘鼠标无法唤醒,电脑休眠键鼠无法唤醒?解决键盘鼠标无法唤醒电脑待机的问题...