杂谈Verilog

组合电路可以用assign连续赋值语句和过程性语句建模。而时序电路只可以用过程性语句建模。

Verilog 语法需要一个包含全部是沿敏感的事件,或者全部是电平敏感的事件,但不能是两者混合的敏感列表

//书本315页图8-3 。。。。。。。 摩尔型的。。。。。。。。

module  (clk,reset,z,w);

     input clk,reset,w;

     output z;

     reg [1:0] y,Y;

     parameter [1:0]  A=2b'00,B=2b'01,C=2b'10;

 

 

     always  @(y,w)

     begin

         case(y) :

            A: if(w)

                    Y=B;

                else

                    Y=A;

           B: if(w)

                   Y=C;

                else 

                   Y=B;

           C: if(w)

                   Y=C;

                else 

                   Y=A;

          endcase

      end

 

     always @(negedge reset,posedge clk)

          if(!reset)

               y=A;

         else 

               y=Y;

 

      assign  z=(y=C);

 

endmodule            

 

令一种描述方法:

module (clk,resetn,w,z);//resetn为习惯用法,n表示reset为低电平有效。。

     input clk,resetn,w;

     output z;

     reg  [1:0] y,Y;

     parameter  [1:0]   A=2'b00,B=2'b01,C=2'b10;

 

     always  @(negedge resetn,posclk)

         if(!reset)  y<=A;

         else 

            case(y)

               A: if(w)  y<=B;

                   else y<=A;

              B:  if(w)  y<=C;

                   else   y<=A;

              C:  if(w)  y<=C;

                   else   y<=A;

              default:  y<=2'bxx;

            endcase

        

        assign z=(y==C);

 

 

endmodule


 

 

只有线网才能成为连续赋值语句的赋值对象。在always块内部被赋值的变量必须是reg型
或者integer型的。不可能对一个既在always块中又转接连续赋值语句的信号赋值、、

 

如果always块有多条语句,必须用begin-end定界符把它们括起来。编译器并不考虑程序
行的缩进排列!

 

某个给定的变量绝对不能在一个以上的always块内赋值。如果在多个
always块中对某个变量进行赋值,就意味着在电路中存在对该变量进行同时赋值的现象,这
样做是没有意义的。

 

用always结构块描述组合逻辑电路时,最好只使用阻塞赋值 。而对于时序
电路,则应该使用非阻塞赋值 。在一个always块中不能同时有阻塞和非阻塞两
种赋值语句。

 

在一个always块中,不可能既为组合电路又为时序电路建立模型。时序输出必须要有沿
触发事件,例如@(posedge Clock),这是指所有在always块中被赋值的变量都是用触发器的
输出实现的。

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值