码迷,mamicode.com
首页 > 其他好文 > 详细

always@* 和 assign的区别

时间:2021-05-24 03:21:24      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:不能   很多   一个   ssi   ram   时钟   总线   sign   超过   

用了很久的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的区别

标签:不能   很多   一个   ssi   ram   时钟   总线   sign   超过   

原文地址:https://www.cnblogs.com/limingembedded/p/14748278.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!