0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

简谈FPGA/Verilog中inout端口使用方法

FPGA学习交流 2018-08-13 13:45 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

大家好,又到了每日学习的时间了,今天我们来聊一聊FPGA/Verilog中inout端口使用方法。

输入端口可以由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
    +关注

    关注

    1656

    文章

    22298

    浏览量

    630457
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    堆栈的定义,堆栈的使用方法

    和使用; 对于8086CPU,进出堆栈的只能是2字节的数据。 2 堆栈的使用方法 常用的堆栈相关指令包括PUSH POP PUSHF和POPF,语法如下: PUSH 源操作数;将指定操作数入栈保护 POP
    发表于 11-21 06:49

    如何使用FPGA实现SRIO通信协议

    泛应用。文章重点解释了回环测试的基本概念,这种方法可验证FPGA的SRIO接口功能的正确性,并提供了系统级测试验证的相关知识。同时,本例程还涵盖了Verilog语法、
    的头像 发表于 11-12 14:38 5099次阅读
    如何使用<b class='flag-5'>FPGA</b>实现SRIO通信协议

    如何利用Verilog HDL在FPGA上实现SRAM的读写测试

    本篇将详细介绍如何利用Verilog HDL在FPGA上实现SRAM的读写测试。SRAM是一种非易失性存储器,具有高速读取和写入的特点。在FPGA实现SRAM读写测试,包括设计SRA
    的头像 发表于 10-22 17:21 3976次阅读
    如何利用<b class='flag-5'>Verilog</b> HDL在<b class='flag-5'>FPGA</b>上实现SRAM的读写测试

    详解FPGA的输入输出处理

    inout端口DataBus作为输出的时候值为DataOut,作为输入时为高阻态。
    的头像 发表于 10-15 10:42 1200次阅读
    详解<b class='flag-5'>FPGA</b>的输入输出处理

    锡膏的储存及使用方法详解

    锡膏是一种常用的焊接辅助材料,广泛应用于电子、电器、通讯、仪表等行业的焊接工艺。正确的储存和使用方法对于保证锡膏的品质和焊接效果至关重要。本文将就锡膏的储存和使用方法进行详细介绍,希望能对广大焊接工作者有所帮助。
    的头像 发表于 07-18 17:36 1081次阅读
    锡膏的储存及<b class='flag-5'>使用方法</b>详解

    Altera FPGA 的PIO IP当中bidir和inout选项的区别

    ,这些很好理解,但Bidir和InOut都表示双向的意思,它们有什么区别吗? 参考28.4.1.2. Direction (intel.com)可知: bidir,指n位宽的信号的每一位都可以单独
    的头像 发表于 07-07 11:55 2177次阅读
    Altera <b class='flag-5'>FPGA</b> 的PIO IP当中bidir和<b class='flag-5'>inout</b>选项的区别

    FPGA Verilog HDL语法之编译预处理

    Verilog HDL语言和C语言一样也提供了编译预处理的功能。“编译预处理”是Verilog HDL编译系统的一个组成部分。Verilog HDL语言允许在程序中使用几种特殊的命令(它们不是一般
    的头像 发表于 03-27 13:30 1105次阅读
    <b class='flag-5'>FPGA</b> <b class='flag-5'>Verilog</b> HDL语法之编译预处理

    PXI-8433/4的规范使用方法分享

    应用,因两线制接线配置不当导致通讯障。本文将以此问题为入点,系统讲解PXI-8433/4的规范使用方法
    的头像 发表于 03-14 10:38 1467次阅读
    PXI-8433/4的规范<b class='flag-5'>使用方法</b>分享

    Verilogsigned和$signed()的用法

    吗?其实不是的,因为有符号数和无符号数据的加法强结果和乘法器结构是一样的,signed的真正作用是决定如何对操作数扩位的问题。 2、verilog的加法和乘法操作前,会先对操作数据扩位成结果相同的位宽,然后进行加法或者乘法处理。比如a/b都为4位数据,c为5位数据,c
    的头像 发表于 02-17 17:47 1192次阅读
    <b class='flag-5'>Verilog</b><b class='flag-5'>中</b>signed和$signed()的用法

    精密空调操作使用方法详解

    精密空调操作使用方法详解
    的头像 发表于 02-10 14:44 1906次阅读
    精密空调操作<b class='flag-5'>使用方法</b>详解

    快速了解电源模块的使用方法

    电源是整个电路可靠工作的核心部分。然而,由于电源电路的电流和发热量较大,容易出现故障。今天我为大家介绍一下电源模块的使用方法
    的头像 发表于 01-21 15:24 1404次阅读

    AB伺服软件使用方法

    AB伺服软件使用方法
    发表于 12-24 14:45 1次下载

    Verilog例化说明

    的例化(或说是调用)。在一个FPGA项目工程,其输入、输出端口命名通常在设计前期就已确定下来,但会存在一些中间变量,一个工程可能会让不同的工程师在不同的时间段内共同完成,不同的人对于这些变量的命名会有所不同,故例化很有必要。
    的头像 发表于 12-17 11:29 3139次阅读
    <b class='flag-5'>Verilog</b>例化说明

    Verilog 与 ASIC 设计的关系 Verilog 代码优化技巧

    Verilog在ASIC设计的作用主要体现在以下几个方面: 逻辑设计 :使用Verilog可以描述数字电路的行为和逻辑结构,包括输入输出端口
    的头像 发表于 12-17 09:52 1460次阅读

    Verilog 测试平台设计方法 Verilog FPGA开发指南

    Verilog测试平台设计方法Verilog FPGA开发的重要环节,它用于验证Verilog
    的头像 发表于 12-17 09:50 1563次阅读