在线咨询 切换到宽版
eetop公众号 创芯大讲堂 创芯人才网

 找回密码
 注册

手机号码,快捷登录

手机号码,快捷登录

搜帖子
楼主: bigbigbird

[求助] 如何用task呼叫

[复制链接]
 楼主| 发表于 2010-12-28 11:32:17 | 显示全部楼层
我知道您的意思 但Y是4bit  
assign Y={0,D}不是只有2bit? 我還真有點搞混
我才學不到兩個禮拜  希望您多指導  謝謝
而x是做為選擇  看輸出是y[0],y[1]或者y[2],y[3]
回复 支持 反对

使用道具 举报

发表于 2010-12-28 20:07:14 | 显示全部楼层
assign y[1:0]

x由谁驱动呢?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-12-29 09:42:38 | 显示全部楼层
我寫的是一對二mux 再加上兩個一對二mux  所以輸出是四個bit
我最後用了兩個task才完成
請版主看看  可能是我之前想寫什麼沒跟您說清楚  造成你的誤解吧
module mux (Din,s,y);
input Din;
input     [1:0]s;
output     [3:0]y;
reg [1:0]x;
reg [3:0]y;
always@(s) begin
mul2(Din,s[1],x[1:0]);
end
task mul2;
input D;
input S;
output [1:0]y;
case (S)
1'b0: y={1'b0,D};
1'b1: y={D,1'b0};
default: y={1'b0,1'b0};
endcase
endtask
always @(s or x) begin
demu12(x[0],s[0],y[1:0]);
demu12(x[1],s[0],y[3:2]);
end

task demu12;
input D;
input Si;

output [1:0]y;

case (Si )

1'b0: y={1'b0,D};
1'b1: y={D,1'b0};
default: y={1'b0,1'b0};
endcase

endtask
endmodule
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /1 下一条


手机版| 小黑屋| 关于我们| 联系我们| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2025-9-13 05:07 , Processed in 0.011562 second(s), 3 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表