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
    +关注

    关注

    1600

    文章

    21286

    浏览量

    592890
收藏 人收藏

    评论

    相关推荐

    FPGA研发设计相关规范(很实用)

    ,子模块输出信号建议用寄存器; 13、内部模块端口避免inout,最好在最顶层模块处理双向总线; 14、子模块禁止使用三态逻辑,可以在顶层模块使用; 15、禁止出现未连接的端口; 1
    发表于 04-16 15:42

    verilog端口类型有哪三种

    Verilog 中,端口类型有三种:输入端口(input)、输出端口(output)和双向端口in
    的头像 发表于 02-23 10:28 467次阅读

    verilog调用模块端口对应方式

    Verilog是一种硬件描述语言(HDL),广泛应用于数字电路设计和硬件验证。在Verilog中,模块是构建电路的基本单元,而模块端口对应方式则用于描述模块之间信号传递的方式。本文将介绍
    的头像 发表于 02-23 10:20 367次阅读

    verilog双向端口的使用

    Verilog硬件描述语言中,端口是指连接模块(Module)与其他模块、寄存器或是物理设备的输入或输出接口。单向端口可以作为输入或输出使用,而双向端口具有双重作用,既可以接收输入信
    的头像 发表于 02-23 10:18 296次阅读

    inout类型怎么仿真

    InOut类型的仿真是指通过计算机软件模拟和模拟硬件组件之间的输入和输出交互过程,以验证和评估电子电路设计的正确性和性能。下面将详细介绍InOut类型的仿真及其实现方法。 一、InOut
    的头像 发表于 02-23 10:17 254次阅读

    verilog inout用法与仿真

    Verilog语言是一种硬件描述语言(HDL),用于描述数字逻辑电路和系统。它是一种非常强大且广泛使用的语言,在数字电路设计中扮演着重要的角色。其中, inoutVerilog中的一种信号类型
    的头像 发表于 02-23 10:15 363次阅读

    FPGA的片内资源

    FPGA的片内资源
    发表于 01-08 22:12

    verilog每日一练】“inout” 双向端口类型的使用

    verilog除了input和output的端口类型,还有inout双向端口,比如在IIC协议sda为双向信号。若sda在sda_out_
    发表于 08-03 16:24

    Verilog inout双向口使用和仿真的方法

    芯片外部引脚很多都使用inout类型的,为的是节省管腿。一般信号线用做总线等双向数据传输的时候就要用到INOUT类型了。就是一个端口同时做输入和输出。
    的头像 发表于 06-25 09:10 4068次阅读

    基于FPGA的千兆以太网设计

    大侠带来基于FPGA的千兆以太网设计,话不多说,上货。今天我们来简单的聊一聊以太网,以太网在FPGA学习属于比较高级的内容了,有些大侠
    发表于 06-01 18:39

    FPGA设计不同设计方法资源消耗对比

    今天和大侠简单聊一聊FPGA设计不同设计方法硬件资源消耗对比,话不多说,上货。 在这里,我们使用Verilog HDL 设计计数器,通过两种不同的写法,对比资源消耗。计数器实现的功能
    发表于 05-31 17:25

    FPGA的竞争冒险和毛刺问题

    。 但是和所有的数字电路一样,FPGA 电路也存在毛刺问题。它的出现会影响电路工作的可靠性、稳定性,严重时会导致整个数字系统的误动作和逻辑紊乱。下面就来讨论交流一下FPGA 的竞争冒险与毛刺
    发表于 05-30 17:15

    CPU、MCU、FPGA、SoC芯片异同之处

    地相互连接,CLB的功能很强,不仅能够实现逻辑函数,还可以配置成RAM等复杂的形式。配置数据存放在芯片内的SRAM,设计人员可现场修改器件的逻辑功能,即所谓的现场可编程。FPGA出现后受到电子设计
    发表于 05-26 17:07

    FPGA三大厂商工具绑定外部编辑器

    和sublime text3的方法。 开发FPGA的都知道各公司软件自带的文本编辑器都不怎么好用,所以通常需要绑定外部文本编辑器来编辑verilog等设计文件。之前用过Xilinx
    发表于 05-24 16:52

    FPGA的开发如何对inout信号进行赋值?

    FPGA的开发,如何对inout信号进行赋值?
    发表于 04-23 14:25