您当前的位置:五五电子网电子知识电子学习基础知识电脑-单片机-自动控制Verilog HDL语言基础教程之组合逻辑电路的实现 正文
Verilog HDL语言基础教程之组合逻辑电路的实现

Verilog HDL语言基础教程之组合逻辑电路的实现

点击数:7442 次   录入时间:03-04 11:57:07   整理:http://www.55dianzi.com   电脑-单片机-自动控制
 

上面这个例子实现了一个加法器,如果需要实现一个数据选择器,可以书写如下:

 

例5:always选择器。

wire a,b,c;

wire ena;

always @ (a or b or ena)      //当a、b和ena有变化时,进行下列操作

    if(ena == 1’b0)      c = b;

    else  c = a;

 

如果想实现一个比较复杂的组合逻辑电路,例如:

 

例6:always8选1选择器。

wire a0,a1,a2,a3,a4,a5,a6,a7,b;

wire [2:0] addr;

always @ (a0 or a1 or a2 or a3 or a4 or a5 or a6 or a7 or addr) begin

      case(addr)            //使用case语句实现8选1数据选择器

            3’d0: b = a0;     //只有当a0~a7以及addr有变化时,才触发case的操作

            3’d1: b = a1;

            3’d2: b = a2;

            3’d3: b = a3;

            3’d4: b = a4;

            3’d5: b = a5;

            3’d6: b = a6;

            3’d7: b = a7;

      endcase

end

 

由于在always块中可以使用if、case等语句,所以对于复杂的组合逻辑,使用always语句进行描述显得层次更加清楚,可读性更强。

从上面几个例子可以看出,使用always语句描述组合逻辑电路时,格式为:

 

always @ (敏感变量1 or敏感变量2 or敏感变量3 or …) begin

      各种语句的组合

end

 

其中的敏感变量包括所有的会引起输出变化的输入变量以及相应的控制变量。另外,使用always语句描述组合逻辑电路时,应该使用阻塞赋值方式,即“=”,而不是“<=”。



上一页  [1] [2] 


本文关键字:暂无联系方式电脑-单片机-自动控制电子学习 - 基础知识 - 电脑-单片机-自动控制