Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1166293
  • 博文数量: 173
  • 博客积分: 4048
  • 博客等级:
  • 技术积分: 2679
  • 用 户 组: 普通用户
  • 注册时间: 2010-09-12 18:53
文章分类

全部博文(173)

文章存档

2018年(1)

2016年(1)

2013年(1)

2012年(118)

2011年(52)

分类: 嵌入式

2012-01-04 21:19:18

如果多个条件语句中的赋值变量不同,条件本身又互斥则没有必要使用if else,直接使用if即可,否则嵌套的
if else回增加延时。
如:
module test(clk,datin,datout1,datout2,datout3);
input clk;
input        [7:0] datin;
output     [7:0] datout1,datout2,datout3;
reg        [7:0] datout1,datout2,datout3;

always@(posedge clk)
begin
    if(datin==0)
        datout1=1;
    else if(datin==1)
        datout2=2;
    else if(datin==2)
        datout3=3;
end
endmodule
综合结果为:

如图所示,datout3由3个2路选择器级联接入,datout2由2个2路选择器接入。他们的延时都将大于datout1。

module test(clk,datin,datout1,datout2,datout3);
input clk;
input        [7:0] datin;
output     [7:0] datout1,datout2,datout3;
reg        [7:0] datout1,datout2,datout3;

always@(posedge clk)
begin
    if(datin==0)
        datout1=1;
    if(datin==1)
        datout2=2;
    if(datin==2)
        datout3=3;
end
endmodule

则3个输出都为一个2路选择器接入。
阅读(1473) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~