inout端口的使用

本文介绍了在VHDL中使用inout端口时遇到的问题及解决方案,特别是在处理SRAM读写操作时。当需要从inout端口读取输入时,必须将其设置为高阻态,因为inout端口通过三态门实现,从输出到输入的转换需要经过高阻态。文中提供了一个实现内存内容加1功能的代码示例,强调了在写操作后设置端口为高阻态的重要性,并反思了在硬件描述语言学习中的经验教训。
摘要由CSDN通过智能技术生成

在vhdl中,有时需要用inout端口,例如对sram的读写。sram的输入和输出数据共用数据总线。在对将inout端口作为输出使用之后,如果要从inout端口读取输入应先将其置高阻态。

因为inout端口是用三态门实现的,可以理解为高阻态能实现从输出到输入的转换。

例如下面的代码段所做,下面的进程实现了对内存内容加1 的功能



rw:process(iclk)
begin
if rising_edge(iclk) then
case phase is
when"000" =>--send addr
MOE <= '0';
MWE <= '1';
data <= (others => 'Z'); --只有送高阻态之后才能正确读,或者说写之后必须要送高阻态inout端口才能转为in,这是inout端口的特点:out -> ‘Z'-> in
data_tmp <= data;
phase <= "010";
when"010" => --acc 
data_tmp <= data_tmp 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值