在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

verilog語法基礎知識

jf_GctfwYN7 ? 來源:IC修真院 ? 2023-07-08 10:40 ? 次閱讀

循環語句分為以下4種:

for語句——通過三個步驟來決定語句的循環執行:

1.給控制循環次數的變量賦初值;

2.判定循環執行條件,若為假則跳出循環;若為真,則執行指定語句后,轉到第三步

3.修改循環變量的值,返回第二步

repeat——連續執行一條語句n次;

while——執行一條語句,直到循環條件不滿足;若一開始條件不滿足,則該語句一次也不能執行

forever——無限連續的執行語句,可用disable語句中斷。

for語句

形式:

for(循環變量賦初值;循環執行條件;循環變量增值) 執行語句

例:用for語句描述7人投票表決器:超過4人投贊成票,則表決通過

module vote7(
output      pass,
input [6:0] vote
);


reg [2:0] sum;  //sum 為reg變量,用于統計贊成的人數
integer    i;
regpass;


always @(vote)
  begin
    sum = 0;   //sum初始值為0
for(i=0;i<=6;i++)    //for語句
  if(vote[i])   sum=sum+1;  //只要有人投贊成票,sum加1
  
  if(sum[2])   pass =1;    //若超過4人,pass為1
  else         pass =0;
  end
endmodule
例:用for語句初始化memory
begin:init_mem
  reg [7:0] tempi;  //存儲器的地址變量
  for(tempi=0;tempi
例:用for語句實現兩個二進制數乘法
module mult_for (outcome,a,b);
parameter size =8;
output [2*size:1]  outcome;
input  [size;1]    a,b;
reg    [2*size:1]  outcome;
integer            i;


always@(a or b)
  begin
    outcome = 0;
for(i=1;i<=size;i=i+1)
  if(b[i]) outcome = outcome +(a<<(i-1));
  end
endmodule

repeat語句(不可綜合)

無條件連續執行一條或多條語句n次

格式:repeat(循環次數表達式)語句

例:用repeat語句和移位操作實現兩個8位二進制數乘法

module mult_repeat(outcome,a,b);
parameter size=8;
output[2*size:1]  outcome;
input [size:1]    a,b;     //a 為被乘數,b為乘數
reg   [2*size:1]  outcome;
reg   [2*size:1]  temp_a;  //中間變量,存放操作數a左移移位的結果
reg[2*size:1]temp_b;//中間變量,存放操作數b右移移位的結果


always@(a or b)
   begin
    outcome = 0;
temp_a = a;
temp_b = b;
repeat(size)
  begin
    if(temp_b[1])   //如果tem_b的最低位是1,則執行下面加法
  outcome = outcome + temp_a;
  temp_a = temp_a <<1;  //操作數a左移一位,以便代入上式,求部分積
  temp_b = temp_b >>1;  //操作數b右移一位,以便取temp_b【1】
  end
   end
endmodule

while 語句

有條件地執行一條或多條語句

首先判斷循環執行條件表達式是否為真。若為真,則執行后面的語句或語句塊;然后再回頭判斷循環執行條件表達式是否為真,若為真,再執行一次后邊的語句;如此不斷,直到條件表達式不為真.

格式:while(循環執行條件表達式) 語句

注1:首先判斷循環執行條件表達式是否為真,若為假,則其后的語句一次也不執行

注2:在執行語句中,必須有一條改變循環執行條件表達式的值的語句

注3:while語句只有當循環塊有事件控制(即@(posedge clk))時才可綜合。

例:用while語句對一個8位二進制中值為1的位進行計數

module count1s_while(count,rega,clk);
output [3:0]  count;
input  [7:0]  rega;
input         clk;
reg    [3:0]  count;
always@(posedge clk)
  begin:count1
    reg[7:0] tempreg;  //用作循環執行條件表達式
count =0;          //count初始值為0
tempreg = rega;    //tempreg初值為rega 
while(tempreg)     //若tempreg非0,則執行下邊語句
    begin
  if(tempreg[0])  count = count + 1;
               //只要tempreg最低位為1,則count加1
  tempreg = tempreg >>1;  //右移1位
end
  end
endmodule
例:用for語句對一個8位二進制中值為1的位進行計數
module count1s_for_good(count,rega);
output [3:0]   count;
input  [7:0]   rega;
reg    [3:0]   count;
always@(rega)
begin:block
   integer i;
   count = 0;
   for(i=0;i<=7;i++)
     if(rega[i])   count = count +1;
end
endmodule

forever語句

無條件連續執行forever后面的語句或語句塊。

格式:forever 語句;

常用在測試模塊中產生周期性的波形,作為仿真激勵信號

常用disable語句跳出循環。

注:不同于always語句,不能獨立寫在程序中,一般用在initial語句塊中。

語句的順序執行

在always模塊內,邏輯按書寫的順序執行。

順序語句——always模塊內的語句

在always模塊內,若隨意顛倒賦值語句的書寫順序,可能導致不同的結果

module serial2(q,a,clk);
output q,a;
input  clk;
reg    q,a;
always @(posedge clk)
  begin
    a = ~q;
    q = ~q;  
  end
endmodule

22295c12-1cb2-11ee-962d-dac502259ad0.png

always模塊,assign語句,實例元件都是同時執行的,它們在程序中的先后順序對結果并沒有影響。

module parall1(q,a,clk);
output q,a;
input  clk;
reg    q,a;
always @(posedge clk)
  begin
    q = ~q;
  end
always @(posedge clk)
  begin
a = ~q;
  end
endmodule
module parall2(q,a,clk);
output q,a;
input  clk;
reg    q,a;
always @(posedge clk)
  begin
    a = ~q;    
  end
always @(posedge clk)
  begin
q = ~q;
  end
endmodule
224f06d8-1cb2-11ee-962d-dac502259ad0.png





審核編輯:劉清

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 存儲器
    +關注

    關注

    38

    文章

    7518

    瀏覽量

    164072
  • 二進制
    +關注

    關注

    2

    文章

    795

    瀏覽量

    41701
  • Verilog語言
    +關注

    關注

    0

    文章

    113

    瀏覽量

    8284

原文標題:IC學霸筆記 | Verilog語法之循環語句

文章出處:【微信號:IC修真院,微信公眾號:IC修真院】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    哪有FPGA的verilog編程基礎知識

    沒接觸過FPGA開發,那個verilog編程有什么入門基礎知識學習的?
    發表于 04-29 23:09

    Verilog HDL練習題和Verilog基礎知識適合verilog新人

    Verilog HDL練習題和Verilog基礎知識適合verilog新人Verilog HDL練習題.pdfVerilog
    發表于 08-15 15:08

    Verilog基礎知識

    Verilog基礎知識
    發表于 09-30 08:50

    Verilog HDL基礎知識

    Verilog HDL基礎知識:硬件描述語言是硬件設計人員和電子設計自動化工具之間的界面。其主要目的是用來編寫設計文件,建立電子系統行為級的仿真模型即利用計算機的巨大能力對用
    發表于 05-31 19:33 ?49次下載

    可綜合的Verilog語法和語義

    可綜合的Verilog語法和語義(劍橋大學,影印):第七版
    發表于 05-21 14:50 ?27次下載
    可綜合的<b class='flag-5'>Verilog</b><b class='flag-5'>語法</b>和語義

    Verilog HDL實驗練習與語法手冊

    Verilog HDL實驗練習與語法手冊-高教
    發表于 05-11 11:30 ?0次下載

    Verilog基礎知識

    Verilog基礎知識,感興趣的小伙伴們可以瞧一瞧。
    發表于 11-10 15:29 ?4次下載

    Verilog_HDL基礎知識非常好的學習教程 (1)

    Verilog_HDL基礎知識非常好的學習教程 (1)
    發表于 01-04 12:33 ?0次下載

    常見的Verilog行為級描述語法

    常見的Verilog描述語句與對應的邏輯關系;熟悉語法與邏輯之間的關系
    的頭像 發表于 09-15 08:18 ?1w次閱讀
    常見的<b class='flag-5'>Verilog</b>行為級描述<b class='flag-5'>語法</b>

    Verilog HDL的基礎知識詳細說明

    硬件描述語言基本語法和實踐 (1)VHDL 和Verilog HDL的各自特點和應用范圍 (2)Verilog HDL基本結構語言要素與語法規則 (3)
    發表于 07-03 17:36 ?54次下載
    <b class='flag-5'>Verilog</b> HDL的<b class='flag-5'>基礎知識</b>詳細說明

    Verilog教程之Verilog HDL數字集成電路設計方法和基礎知識課件

    本文檔的主要內容詳細介紹的是Verilog教程之Verilog HDL數字集成電路設計方法和基礎知識課件
    發表于 12-09 11:24 ?53次下載
    <b class='flag-5'>Verilog</b>教程之<b class='flag-5'>Verilog</b> HDL數字集成電路設計方法和<b class='flag-5'>基礎知識</b>課件

    Verilog語法進階

    Verilog語法進階說明。
    發表于 05-06 16:14 ?30次下載

    Verilog HDL入門教程-Verilog HDL的基本語法

    Verilog HDL入門教程-Verilog HDL的基本語法
    發表于 01-07 09:23 ?179次下載

    Verilog基礎知識

    本節主要講解了 Verilog基礎知識,包括 7 個小節,下面我們分別給大家介紹這 7 個小節的內容。
    的頭像 發表于 08-15 09:04 ?2492次閱讀

    Verilog HDL的基礎知識

    本文繼續介紹Verilog HDL基礎知識,重點介紹賦值語句、阻塞與非阻塞、循環語句、同步與異步、函數與任務語法知識
    的頭像 發表于 10-24 15:00 ?522次閱讀
    <b class='flag-5'>Verilog</b> HDL的<b class='flag-5'>基礎知識</b>
    主站蜘蛛池模板: 欲色视频 | 色多多福利网站老司机 | 手机看片精品国产福利盒子 | 成人亚洲精品 | 日本免费不卡视频 | 恨恨操 | 天天看毛片 | 亚洲欧美日韩色图 | 亚洲精品456人成在线 | 忘忧草爱网 | 久久黄色毛片 | 8888四色奇米在线观看不卡 | eeuss久久久精品影院 | 亚洲一区在线观看视频 | ts人妖另类国产 | 九九午夜 | 波多野结衣的毛片 | 四虎影院在线网址 | 狠狠色噜狠狠狠狠色综合久 | 日日操夜夜操狠狠操 | 免费观看在线观看 | 黄蓉吕文德欲乱系列小说 | 俄罗斯欧美色黄激情 | 九九视频只有精品 | 天天爽爽| 唐人社电亚洲一区二区三区 | 黄色二级视频 | 一区二区三区中文字幕 | 日本黄页网 | 欧美瑟瑟| 牛牛碰在线 | 午夜性福 | 久久影院午夜伦手机不四虎卡 | 男女交性拍拍拍高清视频 | 手机毛片在线 | 97综合色| 亚洲高清中文字幕一区二区三区 | 美女被视频网站在线看九色 | 特级全黄一级毛片视频 | 视频免费在线观看 | 国产a一级毛片午夜剧场14 |