其他分享
首页 > 其他分享> > always@* 和 assign的区别

always@* 和 assign的区别

作者:互联网

用了很久的mc8051,一直以为mc8051的外扩接口有问题,只能写出不能读入。

尝试了很多种方案,包括外部接口使能打一拍读入都试了,都不行。

突然发现数据读入一直都用的assign,换成always@*会是什么样,居然TMD好使了。原始代码

// assign xdata_o =ramx_en ? ramx_data:
// portA_en_d? portA_i_d:    //portA_i不用打一拍,因为它是有外部提供的,如果接按键的话,持续值肯定超过一个总线时钟
// portA_en ? portA_i:
// xdata_o;

换成

always@(*)
begin
if(ramx_en) xdata_o=ramx_data;
//if(portA_en)xdata_o=portA_i;    //此处不起作用,删掉
if(portA_en_d)xdata_o=portA_i;
end

 

注:portA_en_d为portA_en在总线时钟上的打一拍

居然能正常运行了

 

标签:en,ramx,区别,always,portA,xdata,读入,assign
来源: https://www.cnblogs.com/limingembedded/p/14748278.html