1、inout 类型的data信号

写操作有效时(rd_wr_l=0):data端口输入信号,此时data为高阻态,允许对其进行赋值。

读操作有效时(rd_wr_l=1):data端口输出信号,此时data赋值data_o,data_o即是输出的值。

当片选信号cs无效时(cs=1):data端口也应该置为高阻状态。

assign data = (!cs_l && rd_wr_l) ? data_o : 8'bz;

2、开漏结构的端口(i2c控制器的sda端口sda_pin和scl端口scl_pin)一种方式

assign scl_pin = scl ? 1'bz : 1'b0;

assign sda_pin = sda ? 1'bz : 1'b0;

由于scl_pin端口外接上拉电阻,所以当scl=1时,只需要令scl_pin输出高阻即可,当scl=0时,scl_pin拉低。

同理,对于sda端口,由于sda_pin端口外接上拉电阻,所以当sda=1时,只需要令sda_pin输出高阻即可,当sda=0时,sda_pin拉低。

3、开漏结构的端口(i2c控制器的sda端口和scl端口)第二种方式

assign sda = sda_link ? sda_r:1'bz;

利用sda_link信号控制sda作输出输入,sda_link=0时:sda是输入端口,(初始情况下sda设置为输入,检查是否sda是否被占用)。

sda_link=1时:sda是输出端口,输出的值为sda_r。

verilog之inout的更多相关文章

  1. 6.Inout双向端口信号处理方法

    Verilog中inout端口的使用方法 (本文中所有Verilog描述仅为展示inout端口的用法,实际描述则需要更丰富的功能描述) Inout端口的使用 在芯片中为了管脚复用,很多管脚都是双向的, ...

  2. 【设计经验】1、Verilog中如何规范的处理inout信号

    在FPGA的设计过程中,有时候会遇到双向信号(既能作为输出,也能作为输入的信号叫双向信号).比如,IIC总线中的SDA信号就是一个双向信号,QSPI Flash的四线操作的时候四根信号线均为双向信号. ...

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

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

  4. Verilog笔记.4.inout端口

    inout是一个双向端口,实现为使用三态门,第三态为高阻态‘z’. 在实际电路中高阻态意味着响应的管脚悬空.断开. 当三态门的控制信号为真时,三态门选通,作输出端口使用:控制信号为假时,三态门是高阻态 ...

  5. Error (10663): Verilog HDL Port Connection error at led_demo.v(6): output or inout port "led" must be connected to a structural net expression

    错误现象:

  6. VHDL生成的ngc文件被verilog的工程调用的问题

    1. 问题的提出 工程a是一个soft core,用VHDL写的,综合的时候去掉了"Add I/O buffers" ,并将-iob(Pack I/O Registers into ...

  7. Verilog学习笔记基本语法篇(十三)...............Gate门

    Verilog中已有一些建立好的逻辑门和开关的模型.在所涉及的模块中,可通过实例引用这些门与开关模型,从而对模块进行结构化的描述. 逻辑门: and (output,input,...) nand ( ...

  8. FPGA中的INOUT接口和高阻态

    除了输入输出端口,FPGA中还有另一种端口叫做inout端口.如果需要进行全双工通信,是需要两条信道的,也就是说需要使用两个FPGA管脚和外部器件连接.但是,有时候半双工通信就能满足我们的要求,理论上 ...

  9. VHDL:信号、端口以及和Verilog的区别

    1.信号 信号是描述硬件系统的基本数据对象,它的性质类似于连接线.信号可以作为设计实 体中并行语句模块间的信息交流通道.      信号作为一种数值容器,不但可以容纳当前值,也可以保持历史值(这决定于 ...

随机推荐

  1. JsonConvert

    ///"{'jsonParam' : " + jsonText + "}" /* Dictionary<string, object> tmp = ...

  2. PhotoShop阵列功能

    阵列有两种,如下.但是PS没有阵列这一工具,一定要用ps的话,可以参照以下两条: 1:方形阵列 先按CTRL+ALT+T 会出现一个自由变换选取 但是这个是多重复制的选取只要一动就能复制了 确定 然后 ...

  3. APP-8.2-Postman应用

    用户在开发或者调试网络程序或者是网页B/S模式的程序的时候是需要一些方法来跟踪网页请求的,用户可以使用一些网络的监视工具比如著名的Firebug等网页调试工具.今天给大家介绍的这款网页调试工具不仅可以 ...

  4. World Cup 996B(排队模拟)

    题意:有n个通道,按顺序每一次站一个通道,直到所站的通道没有人 分析:模拟这个过程 #include<cstdio> int main() { ]; while(~scanf(" ...

  5. suse 关于使用 /etc/init.d/boot.local的问题

    最近看了一个问题,有同事在 suse环境下的/etc/init.d/boot.local 中,增加了一行脚本. 该脚本的简单大意如下: #!/bin/bash ] do ] then echo &qu ...

  6. 删除node_modules文件夹

    老版本的npm对有node_modules文件夹太长的问题,新版本就没有这个问题.2.7? npm install rimraf -g rimraf node_modules

  7. python __dict__

    dict 以key-value 的形式存储着本对类/模块的: 模块的__dict__ 属性: 存储了模块的 name (这个也是模块的一个单独的键,即:在Bx.py 中引入Ax.py 那么,在Bx中, ...

  8. 23.week4

    调通了 剩下的就是核心的部分

  9. PR(Precision-Recall)曲线和mAP指标

    来自: https://www.zhihu.com/question/41540197 https://www.douban.com/note/518998773/ 作者:水哥链接:https://w ...

  10. java 方法引用(method reference)

    it -> it != null等价于Objects::nonNull