在FPGA的开发中,如何对inout信号进行赋值?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在FPGA的开发中,如何对inout信号进行赋值?相关的知识,希望对你有一定的参考价值。

参考技术A

可以使用verilog语言

1、inout端口不能被赋值为reg型,因此,不能用于always语句中。

2、if等条件语句只能用于initial语句及always语句。

3、因此,对于inout端口的逻辑判断,要用到?:条件表达式,来控制高阻的赋值

4、需要有一个中转的寄存器,这样,在always语句中,才可以将输入的信号赋给输出(用inout代替纯output)

5、高阻态不要用于芯片内部,应该用逻辑引到引脚处,然后用高阻来实现。

举个例子  

input  db2;

output db1;

inout  db;

input  le;

input clk;

//le为控制信号,1时,将db的值赋给db1,0时,将db2的值赋值个db

reg db_reg;

assign db = (le)? 1'bz : db_reg;

always @ (posedge clk)begin

if(le)

db1 <= db;

else

db_reg <=db2;

end

以硬件描述语言(Verilog或VHDL)所完成的电路设计,可以经过简单的综合与布局,快速的烧录至 FPGA 上进行测试,是现代 IC设计验证的技术主流。这些可编辑元件可以被用来实现一些基本的逻辑门电路(比如AND、OR、XOR、NOT)或者更复杂一些的组合功能比如解码器或数学方程式。在大多数的FPGA里面,这些可编辑的元件里也包含记忆元件例如触发器(Flip-flop)或者其他更加完整的记忆块。

系统设计师可以根据需要通过可编辑的连接把FPGA内部的逻辑块连接起来,就好像一个电路试验板被放在了一个芯片里。一个出厂后的成品FPGA的逻辑块和连接可以按照设计者而改变,所以FPGA可以完成所需要的逻辑功能。

FPGA一般来说比ASIC(专用集成电路)的速度要慢,实现同样的功能比ASIC电路面积要大。但是他们也有很多的优点比如可以快速成品,可以被修改来改正程序中的错误和更便宜的造价。厂商也可能会提供便宜的但是编辑能力差的FPGA。因为这些芯片有比较差的可编辑能力,所以这些设计的开发是在普通的FPGA上完成的,然后将设计转移到一个类似于ASIC的芯片上。另外一种方法是用CPLD(Complex Programmable Logic Device,复杂可编程逻辑器件)。

fpga中怎么实现两个inout脚直连

参考技术A inout用法很简单啊 就是你说的assign a=(条件)?b:1‘hz格式
当你要做input型时 你的管脚信号直接用 并且赋值三态
当做output时 把要输出的信号赋给管脚就可以了

以上是关于在FPGA的开发中,如何对inout信号进行赋值?的主要内容,如果未能解决你的问题,请参考以下文章

fpga中怎么实现两个inout脚直连

设计经验1如何规范的处理inout信号

FPGA在分配管脚的时候,inout 型的两个信号A和B,他们要直接连在一起,在程序中怎么写?

FPGA之IO信号类型深入理解

fpga中为啥有些模块的输入信号会变成高组态

FPGA中如何对管脚输入输出信号进行处理?