微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > 请问一个IO口定义为 inout时,信号冲突的问题

请问一个IO口定义为 inout时,信号冲突的问题

时间:10-02 整理:3721RD 点击:
请问一个IO口定义为 inout时,信号冲突的问题
描述:当MCU向FPGA发出读取EEPROM信号时,在“MCU-ALE”信号为低时将IO口的数据锁存到A0-A7,在ALE上升沿将“29040CE”置0,在MCU_RD线的下降沿将“8位双向IO口”置为高阻态,在RD的上升沿表示数据读取完毕,恢复初始状态,
程序:
addr_latch_Proc: process ( MCU_ALE,MCU_ALE_r)
begin
if (MCU_ALE='0' and MCU_ALE_r='1') then
A_latch <= RBR;
elsif (MCU_ALE='1'and MCU_ALE_r='0') then
CE_29040<='0';
end if ;
if (MCU_RD='0' and MCU_RD_r='1')then
RBR<="ZZZZZZZZ" ;
elsif (MCU_RD='1' and MCU_RD_r='0')then
CE_29040<='1';
RBR <=(others => '0');
end if ;
end processaddr_latch_Proc;
综合后:
WARNING:Xst:638 - in unit eeprom_rw Conflict on KEEP property on signal Mtridata_rbr<5> and Mtridata_rbr<7>, Mtridata_rbr<7> signal will be lost.
WARNING:Xst:638 - in unit eeprom_rw Conflict on KEEP property on signal Mtridata_rbr<5> and Mtridata_rbr<6>, Mtridata_rbr<6> signal will be lost.
哪位遇到过这种情况啊,程序该怎么改才对呢?

请问一个IO口定义为 inout时,信号冲突的问题
分成两个process来处理
边沿触发

请问一个IO口定义为 inout时,信号冲突的问题
还是报同样的警告
我是这样改的:
addr_latch_Proc: process ( MCU_ALE,MCU_ALE_r)
begin
if (MCU_ALE='0' and MCU_ALE_r='1') then
A_latch <= RBR;
elsif (MCU_ALE='1'and MCU_ALE_r='0') then
CE_29040<='0';
end if ;
end processaddr_latch_Proc;

RBR_block_Proc: process (MCU_ALE,MCU_RD_r)
begin
if (MCU_RD='0' and MCU_RD_r='1')then
RBR<="ZZZZZZZZ" ;
elsif (MCU_RD='1' and MCU_RD_r='0')then
CE_29040<='1';
RBR <=(others => '0');
end if ;
end processRBR_block_Proc ;

请问一个IO口定义为 inout时,信号冲突的问题
两个process分别处理A_latch 和CE_29040
MCU-ALE下降沿锁存A_latch
上升沿处理CE_29040

请问一个IO口定义为 inout时,信号冲突的问题
process 里加上rbr

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top