inout是一个双向端口,实现为使用三态门,第三态为高阻态‘z’。

在实际电路中高阻态意味着响应的管脚悬空、断开。

当三态门的控制信号为真时,三态门选通,作输出端口使用;控制信号为假时,三态门是高阻态,作输入端口用。

使用时,可用一下写法

  inout data_inout;
input data_in; reg data_reg;//data_inout的映象寄存器
reg link_data; assign data_inout=link_data?data_reg:’bz;//link_data控制三态门
8 //对于data_reg,可以通过组合逻辑或者时序逻辑根据data_in对其赋值.
9 //通过控制link_data的高低电平,从而设置data_inout是输出数据还是处于高阻态,
10 //如果处于高阻态,则此时当作输入端口使用.link_data可以通过相关电路来控制.

模块代码

 module three_state(
//系统输入
clk,//系统时钟输入
rst_n,//低电平复位信号
data_buf,
//系统输出
sda//三态总线
); //-------------------系统输入-------------------
input clk;//系统时钟输入
input rst_n;//低电平复位信号
input data_buf;//待传输数据
//-------------------系统输出-------------------
inout sda;//三态总线
//------------------寄存器定义------------------
reg flag;//三态门开关定义
reg [:]counter;//计数器定义
//------------------三态门赋值------------------
assign sda=(flag==)?data_buf:'bz;
//----------------开关控制计数器----------------
always@(posedge clk or negedge rst_n)
begin
if(!rst_n)
begin
counter<=;//计数器复位
end
else
begin
if(counter<</span>)//计数器范围
counter<=counter+;//计数器累加
else
counter<=;//计数器清零
end
end
//----------------开关/数据控制-----------------
always@(posedge clk or negedge rst_n)
begin
if(!rst_n)
begin
flag<=;//开关关闭
end
else
begin
if(counter==)
flag<=~flag;//开关信号翻转
end
end
endmodule

相连的两个inout端口由一对信号交叉控制:
在内部模块中inout端口不能独立存在,当一个模块的inout端口作为输出时,那么另一个模块的inout端口必然作为输入;反之,当一个模块的inout端口作为输入时,那么另一个模块的inout端口必然作为输出。因此,这两个inout端口的控制信号实际上是由一对信号交叉控制。

Verilog笔记.4.inout端口的更多相关文章

  1. 可控线性序列机(查看除了inout端口外的其他变量的波形的方法)

    可控线性序列机: 可控:有个控制端控制何时输出线性序列. 线性序列机:输出一个线性序列. 知识点: 1.包含多个判定条件时用英文()括起来,用&&连接. 2.使能端EN的设置(类似于D ...

  2. Verilog笔记——Verilog数字系统设计(第二版)夏宇闻

    本片记录Verilog学习笔记,主要是和以往用的C语言的不同之处,以例子.代码的形式记录.学习以<Verilog数字系统设计>(第二版)为参考资料,援助作者夏宇闻. 1. C语言和Veri ...

  3. 在verilog中关于inout口的设计方法

    在学习IIC的时候我们知道这么设计inout inout   scl : reg    scl_reg ,  scl_en ; scl  = scl_en ?   scl_reg : 1'dz ; 当 ...

  4. kali linux学习笔记(四) : 网络端口大全介绍

    端口大全介绍 2端口:管理实用程序 3端口:压缩进程 5端口:远程作业登录 7端口:回显 9端口:丢弃 11端口:在线用户 13端口:时间 17端口:每日引用 18端口:消息发送协议 19端口:字符发 ...

  5. Kali学习笔记10:端口扫描详解(下)

    上一篇先是介绍了UDP的端口扫描,又谈了TCP的不完全连接端口扫描 https://www.cnblogs.com/xuyiqing/p/9389276.html 接下来我们看看TCP的全连接端口扫描 ...

  6. Kali学习笔记9:端口扫描详解(上)

    UDP端口扫描: 原理:回应ICMP不可达,代表端口关闭:没有回应,端口开启 建议了解应用层的UDP包头结构,构建对应的UDP数据包用来提高准确度 另外:所有的扫描都存在误判情况 我们用Scapy写个 ...

  7. Verilog笔记.1.基本语法

    0.前 抽象模型分级: • 系统级(system):用高级语言结构实现设计模块的外部性能的模型.• 算法级(algorithm):用高级语言结构实现设计算法的模型.• RTL级(Register Tr ...

  8. Thrift笔记(六)--单端口 多服务

    多个服务,使用监听一个端口.先上一个demo Test.thrift namespace java com.gxf.thrift enum RequestType { SAY_HELLO, //问好 ...

  9. android学习笔记:adb更换端口后成功启动

    搭建手机开发环境,android ADT,android SDK,然后按照PhoneGap官网的指引,拷贝文件,修改代码,运行,进度条到了某个位置后就停止不动了. 停止不动,又是停止不动.你都不知道问 ...

随机推荐

  1. 免费各种查询API接口

    快递查询 http://www.kuaidi100.com/query?type=quanfengkuaidi&postid=390011492112 (PS:快递公司编码:申通"s ...

  2. vue-cli3使用 DllPlugin 实现预编译,提升构建速度

    在项目打包上有两个目标:减少打包代码体积和加快打包速度 1. 减少打包体积: (1)对于用的比较少的库,可以去掉(我去掉了jquery以及lodash),用到的地方,参考源码自己写 (2)非用不可的又 ...

  3. 【插件】LinqToExcel常用对象

    1.ExcelQueryFactory对象(1)获取工作表名集合IEnumerable<string> GetWorksheetNames() //获取工作薄中的工作表名foreach ( ...

  4. 【bzoj2669】[cqoi2012]局部极小值 容斥原理+状压dp

    题目描述 有一个n行m列的整数矩阵,其中1到nm之间的每个整数恰好出现一次.如果一个格子比所有相邻格子(相邻是指有公共边或公共顶点)都小,我们说这个格子是局部极小值. 给出所有局部极小值的位置,你的任 ...

  5. 51nod 1292 字符串中的最大值V2(后缀自动机)

    题意: 有一个字符串T.字符串S的F函数值可以如下计算:F(S) = L * S在T中出现的次数(L为字符串S的长度).求所有T的子串S中,函数F(S)的最大值. 题解: 求T的后缀自动机,然后所有每 ...

  6. 【刷题】BZOJ 4196 [Noi2015]软件包管理器

    Description Linux用户和OSX用户一定对软件包管理器不会陌生.通过软件包管理器,你可以通过一行命令安装某一个软件包,然后软件包管理器会帮助你从软件源下载软件包,同时自动解决所有的依赖( ...

  7. HSTS的来龙去脉

    前言 安全经常说“云.管.端”,“管”指的是管道,传输过程中的安全.为了确保信息在网络传输层的安全,现在很多网站都开启了HTTPS,也就是HTTP+TLS,在传输过程中对信息进行加密.HTTPS使用了 ...

  8. php-fpm: hundreds of seconds in the log

    favoriteI have nginx+php-fpm web serverSo I've noticed in php5-fpm.log many strange lines:[03-Sep-20 ...

  9. 【bzoj4571】美味

    Portal -->bzoj4571 Solution emmm持续智力康复.. 虽然说因为统计的是加上\(x\)的跟\(b\)异或的最大值所以可持久化trie用不了了 ​ 但是按位贪心的思想还 ...

  10. 链接错误 multiply defined (by misc_1.o and misc.o).

    http://www.stmcu.org/module/forum/thread-286128-1-1.html *** Using Compiler 'V5.06 (build 20)', fold ...