always@* 和 assign的区别

2021/5/9 18:29:07

本文主要是介绍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在总线时钟上的打一拍

居然能正常运行了

 



这篇关于always@* 和 assign的区别的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程