verilog之inout
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的更多相关文章
- 6.Inout双向端口信号处理方法
Verilog中inout端口的使用方法 (本文中所有Verilog描述仅为展示inout端口的用法,实际描述则需要更丰富的功能描述) Inout端口的使用 在芯片中为了管脚复用,很多管脚都是双向的, ...
- 【设计经验】1、Verilog中如何规范的处理inout信号
在FPGA的设计过程中,有时候会遇到双向信号(既能作为输出,也能作为输入的信号叫双向信号).比如,IIC总线中的SDA信号就是一个双向信号,QSPI Flash的四线操作的时候四根信号线均为双向信号. ...
- 在verilog中关于inout口的设计方法
在学习IIC的时候我们知道这么设计inout inout scl : reg scl_reg , scl_en ; scl = scl_en ? scl_reg : 1'dz ; 当 ...
- Verilog笔记.4.inout端口
inout是一个双向端口,实现为使用三态门,第三态为高阻态‘z’. 在实际电路中高阻态意味着响应的管脚悬空.断开. 当三态门的控制信号为真时,三态门选通,作输出端口使用:控制信号为假时,三态门是高阻态 ...
- 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
错误现象:
- VHDL生成的ngc文件被verilog的工程调用的问题
1. 问题的提出 工程a是一个soft core,用VHDL写的,综合的时候去掉了"Add I/O buffers" ,并将-iob(Pack I/O Registers into ...
- Verilog学习笔记基本语法篇(十三)...............Gate门
Verilog中已有一些建立好的逻辑门和开关的模型.在所涉及的模块中,可通过实例引用这些门与开关模型,从而对模块进行结构化的描述. 逻辑门: and (output,input,...) nand ( ...
- FPGA中的INOUT接口和高阻态
除了输入输出端口,FPGA中还有另一种端口叫做inout端口.如果需要进行全双工通信,是需要两条信道的,也就是说需要使用两个FPGA管脚和外部器件连接.但是,有时候半双工通信就能满足我们的要求,理论上 ...
- VHDL:信号、端口以及和Verilog的区别
1.信号 信号是描述硬件系统的基本数据对象,它的性质类似于连接线.信号可以作为设计实 体中并行语句模块间的信息交流通道. 信号作为一种数值容器,不但可以容纳当前值,也可以保持历史值(这决定于 ...
随机推荐
- 3. easyui 修改功能实例
function modifyPerson() { var rows = $('#personInfoGrid').datagrid('getSelections'); if (rows.length ...
- 1. apache如何启动
进入apache安装目录/bin/底下,用命令:./apachectl start 启动
- Spring Cloud (6)A config 服务端配置 与github通信
1. 在git上创建一个库,并复制库地址 2.用git clone项目到本地,并创建application.yml application.yml 内容 --下一步 3.将application.ym ...
- CSS样式学习-1
一.分类 ①内联,写在标签中,写法是style="样式属性".优先级最高. 优点:控制精确.缺点:代码重用性差,范围小. 例如: <div style="font- ...
- Git 上传文件到 码云 gitee
1:git bash 执行如下 git config –global user.name “eason” git config –global user.email “your email@qq.co ...
- elasticSearch-header
elasticSearch既有chrome的插件 sense,但是因为chrome作为恶意插件不让植入,因此sense目前还停留在5版本. elasticSearch自带head plugin,用于监 ...
- (已解决)搭建ssm框架时给springmvc传入对象传不进去,传单个字符串可以
问题如题: springmvc会自动解析传入的内容,只要将表单中的对象名字和pojo一一对应,否则会报错. jsp默认好像是会加上请求头. 如果要是用其他的方式去给接口传入对象.要加上请求头. Con ...
- URL分发(URLConf)
如果项目中应用太多,都写到顶层的urls.py中,如果个别应用url出问题的话,其他的应用也会受影响,所以我们需要对每个应用下面都写一个urls.py,实现分发 顶层urls.py中写:(属于blog ...
- Oracle保留两位小数的函数
1.最终保存成字符串类型 使用to_char()函数 // 其9代表:如果存在数字则显示数字,不存在则显示空格 // 其0代表:如果存在数字则显示数字,不存在则显示0,即占位符 // 其FM代表:删除 ...
- JVM 学习集合
内存回收要做的事: 确定哪些内存需要回收,确定什么时候需要执行GC,如何执行GC 以最简单的本地变量引用:Object obj = new Object()为例: Object obj表示一个本地引用 ...