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