verilog 双向IO实现

网上搜索了一番,示例挺多,但发现都写的是 input in; output out;

然后  assign io= (oe)?out:1‘bz;
就有点想不明白了,当IO方向为输出时,应该输出out的值,那么针对这个IO模块,out应该是input才对。

而in应该是ouput的。

尝试写了段代码

module iopin
(
    iopin,
    in_data,
    out_data,
    oe
);

inout iopin;
output in_data;
input out_data;
input oe;

assign in_data = iopin;
assign iopin = (oe)?out_data:1‘bz;

endmodule

编译后 RTL viewer显示如下,符合预期要求,有空再继续研究。

时间: 2024-10-02 23:04:24

verilog 双向IO实现的相关文章

单片机小白学步系列(二十三) IO口原理知识补充:双向IO口、互补推挽、高阻态

由于之前考虑不周,本篇在IO口原理知识的基础上,进一步补充一些知识. ================================================= 双向IO口的输出:互补推挽 在51单片机的P0口工作在普通IO口模式下,为准双向IO口.而工作在第二功能状态下时,则为标准的双向IO口.由于双向IO口的输出,要求能输出高低电平,通常会采用互补推挽电路. 在第二功能状态下,51单片机P0口采用的是互补推挽的输出方式.何为互补推挽呢?下面是它的等效电路图. 当P0第二功能作为输出时

verilog逻辑复制

本文转自:http://www.cnblogs.com/linjie-swust/archive/2012/03/27/FPGA_verilog.html 在FPGA设计中经常使用到逻辑复制,逻辑复制也用在很多场合. 1.    信号驱动级数非常大,扇出很大,需要增加驱动力 逻辑复制最常使用的场合时调整信号的扇出.如果某个信号需要驱动后级很多单元,此时该信号的扇出非常大,那么为了增加这个信号的驱动能力,一种办法就是插入多级Buffer,但是这样虽然能增加驱动能力,但是也增加了这个信号的路径延时.

多片PCF8574扩展树莓派IO

这里选择了使用3片PCF8574扩展,可以拓展出24个双向IO口. 如果有不了解,可参考我前边的几篇文章: 树莓派i2c配置 树莓派安装WiringPi库 PCF8574扩展树莓派io口 正面接线图: 反面焊点图: (注意:PCF8574芯片的A0 A1 A2引脚电平状态,这里的接法三片PCF8574的地址分别为 0x20 0x21 0x22 ,实际可根据自己的需要进行调整.) 连接好芯片后,用 i2cdetect  工具查看芯片识别状态 sudo i2cdetect -y 1 如果按我的地址选

漏极开路,推挽,上拉电阻,弱上拉,三态门,准双向口

我们先来说说集电极开路输出的结构.集电极开路输出的结构如图1所示,右边的那个三极管集电极什么都不接,所以叫做集电极开路(左边的三极管为反相之用,使输入为“0”时,输出也为“0”).对于图 1,当左端的输入为“0”时,前面的三极管截止(即集电极c跟发射极e之间相当于断开),所以5v电源通过1k电阻加到右边的三极管上,右边的三极管导通(即相当于一个开关闭合):当左端的输入为“1”时,前面的三极管导通,而后面的三极管截止(相当于开关断开).       我们将图1简化成图2的样子.图2中的开关受软件控

单片机小白学步系列(二十) IO口原理

IO口操作是单片机实践中最基本最重要的一个知识,本篇花了比较长的篇幅介绍IO口的原理.也是查阅了不少资料,确保内容正确无误,花了很长时间写的.IO口原理原本需要涉及很多深入的知识,而这里尽最大可能做了简化方便理解.这样对于以后解决各种IO口相关的问题会有很大的帮助. IO口等效模型是本人独创的方法,通过此模型,能有效的降低对IO口内部结构理解的难度.并且经查阅资料确认,这种模型和实际工作原理基本一致. ========================================== 前面说了

GPIO输入输出各种模式(推挽、开漏、准双向端口)详解(转)

GPIO输入输出各种模式(推挽.开漏.准双向端口 概述 能将处理器的GPIO(General Purpose Input and Output)内部结构和各种模式彻底弄清楚的人并不多,最近在百度上搜索了大量关于这部分的资料,对于其中很多问题的说法并不统一.本文尽可能的将IO涉及到的所有问题罗列出来,对于有明确答案的问题解释清楚,对于还存在疑问的地方也将问题提出,供大家讨论. 概括地说,IO的功能模式大致可以分为输入.输出以及输入输出双向三大类.其中作为基本输入IO,相对比较简单,主要涉及的知识点

实验二十四:SD卡模块

  驱动SD卡是件容易让人抓狂的事情,驱动SD卡好比SDRAM执行页读写,SD卡虽然不及SDRAM的麻烦要求(时序参数),但是驱动过程却有猥琐操作.除此此外,描述语言只要稍微比较一下C语言,描述语言一定会泪流满面,因为嵌套循环,嵌套判断,或者嵌套函数等都是它的痛.. 史莱姆模块是多模块建模的通病,意指结构能力非常脆弱的模块,暴力的嵌套行为往往会击垮模块的美丽身躯,好让脆弱结构更加脆弱还有惨不忍睹,最终搞垮模块的表达能力.描述语言预想驾驭SD卡,关键的地方就是如何提升模块的结构能力.简单而言,描述

STIL文件(DFT/IC测试方向)

相信很多工程师,特别是刚入行或准备入行的兄弟们或多或少听过测试相关的东西.如果你想做DFT工程师的,测试工程师的,而对于设计/验证工程师们如果能了解下STIL文件的原理,在和DFT/测试工程师聊技术聊测试pattern的时候就不会一脸懵逼了. 言归正传.STIL就是StandardTestInterfaceLanguage(标准测试接口语言),IEEE1450.x标准就是专门说的它,语法上很有内涵的感觉.但很明显这就是用来描述测试pattern用的语言(Synoposys会采用STIL来描述扫描

基于FPGA的通用异步收发器设计与实现

一,UART UART的协议 2,UART工作原理 发送数据:空闲状态,线路处于高电位:当收到发送数据指令后,拉低线路一个数据位的时间T,接着数据按低位到高位依次发送,数据发送完毕后,接着发送奇偶校验位和停止位(停止位为高电位),一帧数据发送结束. 接受原理:空闲状态,线路处于高电位:当检测到线路的下降沿(线路电位由高电位变为低电位)时说明线路有数据传输,按照约定的波特率从低位到高位接收数据,数据接收完毕后,接着接收并比较奇偶校验位是否正确,如果正确则通知后续设备准备接收数据或存入缓存 为了能保