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

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
12
返回列表 发新帖
楼主: 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-7-18 08:47 , Processed in 0.015030 second(s), 7 queries , Gzip On, MemCached On.

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