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

    关注

    1664

    文章

    22502

    浏览量

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    泰克示波器MDO3000使用方法

    泰克MDO3000系列示波器是一款集示波、频谱分析与功率测量于一体的高性能多功能仪器,广泛应用于电子研发、教学实验及工业测试领域。掌握其正确使用方法,不仅能提升测试效率,更能确保测量结果的准确性
    的头像 发表于 04-17 17:42 1032次阅读
    泰克示波器MDO3000<b class='flag-5'>使用方法</b>

    RTL9301管理型交换机DHCP Server使用方法

    RTL9301管理型交换机DHCP Server使用方法
    的头像 发表于 02-01 10:52 1496次阅读
    RTL9301管理型交换机DHCP Server<b class='flag-5'>使用方法</b>

    FPGA 入门必看:Verilog 与 VHDL 编程基础解析!

    很多开发者第一次接触FPGA,都会有同样的疑问:FPGA是硬件,不是软件,怎么写程序?答案就是用硬件描述语言(HDL),最常用的就是Verilog和VHDL。今天,我们就带你入门,搞清楚FPG
    的头像 发表于 01-19 09:05 707次阅读
    <b class='flag-5'>FPGA</b> 入门必看:<b class='flag-5'>Verilog</b> 与 VHDL 编程基础解析!

    易灵思FPGA DSP原语使用方法

    在现代数字信号处理(DSP)应用FPGA(现场可编程门阵列)凭借其高度并行性、可定制性和灵活性,已成为加速信号处理任务的核心硬件平台之一。
    的头像 发表于 12-10 10:32 5788次阅读
    易灵思<b class='flag-5'>FPGA</b> DSP原语<b class='flag-5'>使用方法</b>

    数字IC/FPGA设计的时序优化方法

    在数字IC/FPGA设计的过程,对PPA的优化是无处不在的,也是芯片设计工程师的使命所在。此节主要将介绍performance性能的优化,如何对时序路径进行优化,提高工作时钟频率。
    的头像 发表于 12-09 10:33 3547次阅读
    数字IC/<b class='flag-5'>FPGA</b>设计<b class='flag-5'>中</b>的时序优化<b class='flag-5'>方法</b>

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

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

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

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

    如果将蜂鸟的risc-v移植到其他的fpga想实现一些外设功能有什么办法?可以不用操作系统直接添加verilog代码吗?

    请问如果将蜂鸟的risc-v移植到其他的fpga想实现一些外设功能有什么办法?可以不用操作系统直接添加verilog代码吗?
    发表于 11-10 06:35

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

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

    NucleiStudio下载程序到FPGA的E203上

    使用NucleiStudio开发应用程序,并将应用程序的代码下载到FPGA上。这里,以helloworld为例,介绍该过程遇到的问题以及解决方法。 1、新建Nuclei RISC-V C/C++项目,使用ILM的下载
    发表于 10-20 09:24

    详解FPGA的输入输出处理

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

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

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

    RTL级机器人电机控制器的FPGA设计

    借助Verilog,在FPGA实现了带编码器的两台电机的电机控制系统的RTL级设计。
    的头像 发表于 07-07 14:01 3092次阅读
    RTL级机器人电机控制器的<b class='flag-5'>FPGA</b>设计

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

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

    手机框气密性检测仪的使用方法

    在手机制造过程,确保手机框的气密性至关重要,这直接关系到手机的防水、防尘性能以及整体质量。以下是手机框气密性检测仪的具体使用方法。检测前准备:首先,要确保手机
    的头像 发表于 05-27 13:50 1274次阅读
    手机<b class='flag-5'>中</b>框气密性检测仪的<b class='flag-5'>使用方法</b>