Verilog语法


二、电路设计(语法)

1、设计不用的语法

a)initial【设计不用,仿真时用】

b)task/function【设计不用、仿真很少用】

c)for/while/repeat/forever【设计不用、仿真很少用】

d)integer【设计不用】

e)模块内部最好不要有X态、Z态,内部不能有三态接口

f)casex/casez【设计和仿真都不用】

g)force/wait/fork【设计不用仿真很少用】

h)#10  【设计不用,仿真经常使用】

2、设计使用的语法

a)reg/wire/parameter

b)assign /always

c)if     else    和case两种条件语句使用

d)算数运算符(加减乘除余+  -  *   /  %)【加减乘常用】

e)赋值运算符(=   <=)【时序逻辑用非阻塞赋值,组合逻辑用阻塞赋值,其他情况不存在】

f)关系运算符(<   >   <=   >=)

g)逻辑运算符(&&        ||     !)【为了避免歧义,运算符两侧为1bit的信号】

h)位运算符(~     |   ^   &)

i)移位运算符    (>>        <<<)

j)拼接运算符(   {}   )

三、电路设计的结构

1)组合逻辑

always@(*)begin

//语句

end

 

2)时序逻辑

a)同步复位的时序电路    

 

always@(posedge   clk)begin     

      if(rst_n==1'b0)begin        

      //语句                           

      end                                 

      else begin

      //语句

      end

end

 

b)  异步复位时序电路

always@(posedge   clk or  negedge rst_n)begin

      if(rst_n==1'b0)begin

      //语句

      end

      else begin

      //语句

      end

end

四、设计要点

1、一个always只产生一个信号,一个信号只在一个always中产生

always@(posedge   clk or  negedge rst_n)begin

      if(rst_n==1'b0)begin

      b<=0;

      a<=0;

      end

      else begin

      b<=1;

      a<=1;

      end

end

 

 

always@(posedge   clk or  negedge rst_n)begin

      if(rst_n==1'b0)begin

      b<=0;

      end

      else begin

      b<=1;

      end

end

 

always@(posedge   clk or  negedge rst_n)begin

      if(rst_n==1'b0)begin

      a<=0;

      end

      else begin

      a<=1;

      end

end

总结:仿真、调试               代码的修改

1)always描述的是一个信号产生的全过程,即什么情况下这个值是多少,再其他情况下,这个值又是多少。

2)条件判断只有if……else    case……endcase 其他都不用

3)包含posedge  或者negedge的,一定是D触发器,是时序电路

4)设计时,考虑   如果想立即产生结果   用组合逻辑    想延时一拍,用时序电路

 

 

总结:电路设计的语法    结构   要点

a)         三种电路

b)        两种条件

c)         一一法则

 

参数化   和   例化

 

 

 

设计代码信号类型的总结

 

1、         设计代码仅仅使用reg和wire

2、         设计代码中 :由本模块产生且用always产生的信号,用reg

3、         在测试代码中:用initial产生的信号,用reg类型

4、         其他用wire

5、         reg类型的信号,不一定产生寄存器!!!!!


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM