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

    关注

    1626

    文章

    21669

    浏览量

    601866
收藏 人收藏

    评论

    相关推荐

    Verilog vhdl fpga

    相关专业,具有良好的专业基础知识。 感兴趣可滴滴 JYHXDX534 2.工作年限不限,有工作经验或优秀应届毕业生亦可。 3.对FPGA芯片架构和资源有深入的理解,精通Verilog HDL、VHDL
    发表于 11-12 16:40

    FPGA编程语言的入门教程

    编程基础 基本结构 Verilog程序的基本结构包括模块(module)和端口(port)定义。每个模块都有输入(input)、输出(output)和可能的双向(inout端口。 数
    的头像 发表于 10-25 09:21 152次阅读

    FPGA Verilog HDL代码如何debug?

    ,共同进步。 欢迎加入FPGA技术微信交流群14群! 交流问题(一) Q:Verilog代码如何debug?最近学习fpga,写了不少verilog,开始思考如何debug的问题!c语
    发表于 09-24 19:16

    FPGA频率测量的方法有哪些?

    FPGA在实际应用,频率测量不可或缺,对于高频及低频信号的频率测量,FPGA有哪些方法呢?提供Verilog源码会更好。
    发表于 06-19 14:55

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

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

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

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

    veriloginput和output作用

    Verilog,input和output用于定义模块的输入和输出端口。它们是用于通信的关键元素,定义了模块与其它模块之间的数据传输接口。通过input和output端口,模块之间可
    的头像 发表于 02-23 10:29 2950次阅读

    verilog端口类型有哪三种

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

    verilog调用模块端口对应方式

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

    verilog双向端口的使用

    输出信号。本文将详细介绍Verilog双向端口的使用,并提供示例说明其在实际应用的作用。 第一部分:双向端口的定义和语法 在Verilog
    的头像 发表于 02-23 10:18 1296次阅读

    inout类型怎么仿真

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

    verilog inout用法与仿真

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

    verilog函数和任务对比

    verilog,函数和任务均用来描述共同的代码段,并且在模式内任意位置被调用,提高代码效率,让代码更加的直观,提高代码可读性。但是在实际使用的过程,函数和任务也存在诸多的不同,下面将对而这进行
    的头像 发表于 02-12 18:43 861次阅读

    FPGA的片内资源

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

    PCBA焊接电路电烙铁的使用方法

    PCBA焊接电路电烙铁的使用方法的相关知识。
    的头像 发表于 12-26 10:27 754次阅读