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

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

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

3天內不再提示

你們知道always,assign和always@(*)之間的區別嗎

FPGA之家 ? 來源:碎碎思 ? 作者:碎碎思 ? 2021-06-27 11:47 ? 次閱讀

1.always@后面內容是敏感變量,always@(*)里面的敏感變量為*,意思是說敏感變量由綜合器根據always里面的輸入變量自動添加,也就是所有變量都是敏感列表,不用自己考慮。2.如果沒有@,那就是不會滿足特定條件才執行,而是執行完一次后立馬執行下一次,一直重復執行,比如testbench里面產生50Mhz的時鐘就(假設時間尺度是1ns)可以寫成

always #25 CLK_50Mhz = ~CLK_50Mhz;

一般always@(*)是指里面的語句是組合邏輯的。*代替了敏感變量。

而一般時序邏輯要寫成

always@(posedge clk or negedge rst)

時鐘信號clk上升沿或者復位信號rst下降沿的時候執行always塊內的代碼。

assign 用于描述組合邏輯always@(敏感事件列表) 用于描述時序邏輯敏感事件 上升沿 posedge,下降沿 negedge,或電平敏感事件列表中可以包含多個敏感事件,但不可以同時包括電平敏感事件和邊沿敏感事件,也不可以同時包括同一個信號的上升沿和下降沿,這兩個事件可以合并為一個電平敏感事件。在新的verilog2001中“,”和“or”都可以用來分割敏感事件了,可以用“*”代表所有輸入信號,這可以防止遺漏。合法的寫法:

always@ *

always@ (posedge clk1,negedge clk2)

always@ (a or b)

`timescale 100ns/100ns //定義仿真基本周期為100nsalways #1 clk=~clk //#1代表一個仿真周期即100ns

所有的assign 和 always 塊都是并行發生的!并行塊、順序塊將要并行執行的語句寫在

fork//語句并行執行join

將要順序執行的語句寫在

begin//語句順序執行end

并行塊和順序塊都可以寫在initial 或 always@ 之后,也就是說寫在塊中的語句是時序邏輯的對assign之后不能加塊,實現組合邏輯只能用逐句的使用assign組合邏輯如果不考慮門的延時的話當然可以理解為瞬時執行的,因此沒有并行和順序之分,并行和順序是針對時序邏輯來說的。值得注意的是所有的時序塊都是并行執行的。initial塊只在信號進入模塊后執行1次而always塊是由敏感事件作為中斷來觸發執行的。

2:assign 組合邏輯和always@(*)組合邏輯verilog描述組合邏輯一般常用的有兩種:assign賦值語句和always@(*)語句。兩者之間的差別有: 1. 被assign賦值的信號定義為wire型,被always@(*)結構塊下的信號定義為reg型,值得注意的是,這里的reg并不是一個真正的觸發器,只有敏感列表為上升沿觸發的寫法才會綜合為觸發器,在仿真時才具有觸發器的特性。 2. 另外一個區別則是更細微的差別:舉個例子,

wire a;reg b;assign a = 1‘b0;always@(*)b = 1’b0;

在這種情況下,做仿真時a將會正常為0, 但是b卻是不定態。這是為什么?verilog規定,always@(*)中的*是指該always塊內的所有輸入信號的變化為敏感列表,也就是仿真時只有當always@(*)塊內的輸入信號產生變化,該塊內描述的信號才會產生變化,而像always@(*) b = 1‘b0; 這種寫法由于1’b0一直沒有變化,所以b的信號狀態一直沒有改變。

由于b是組合邏輯輸出,所以復位時沒有明確的值(不定態),而又因為always@(*)塊內沒有敏感信號變化,因此b的信號狀態一直保持為不定態。事實上該語句的綜合結果有可能跟assign一樣(本人沒有去嘗試),但是在功能仿真時就差之千里了。

編輯:jq

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

    關注

    14

    文章

    2033

    瀏覽量

    61916
  • 綜合器
    +關注

    關注

    0

    文章

    12

    瀏覽量

    6574
  • CLK
    CLK
    +關注

    關注

    0

    文章

    127

    瀏覽量

    17543

原文標題:Verilog 里面,always,assign和always@(*)區別

文章出處:【微信號:zhuyandz,微信公眾號:FPGA之家】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦
    熱點推薦

    # quartus ii 9.1對registered adder仿真出錯,但硬件上能夠實現,怎么解決?

    ,Cout,reset,Clock); input[3:0] A,B;//定義兩個四位變量 output[3:0] C,D;//CD用來將AB輸入顯示到LED燈上 assign C=A; assign
    發表于 04-14 21:35

    HSE子系統HSE_H、HSE_M和HSE_B之間有什么區別

    我想知道 HSE 子系統 HSE_H、HSE_M 和 HSE_B 之間有什么區別區別是它們在哪個板上運行,還是也存在功能差異?
    發表于 03-20 07:37

    S32G DMA和Noc之間區別是什么?

    當我閱讀 S32G3 參考手冊時,我對 S32G DMA 和 Noc 之間區別有疑問。由于 NoC 支持內核、外設和 SRAM 之間的通信,并且 DMA 還可以在內存塊和 I/O 塊之間
    發表于 03-17 08:25

    中航光電亮相2025年韓國儲能電池展

    近日,備受關注的韓國儲能電池展盛大啟幕。中航光電以“Always-on Power, Always-on Site”為主題,攜新能源汽車、光伏儲能及液冷技術領域的互連方案驚艷亮相。
    的頭像 發表于 03-07 17:53 ?578次閱讀

    TXB0104與TXS0102兩者之間有什么區別嗎?

    兩款芯片的區別;TXB0104是buffered-type;TXS0102是switch-type請問這兩者之間有什么區別嗎?
    發表于 02-10 08:42

    ADS8684與ADS8684A之間區別是什么?

    看了半天,看不出哪里不一樣,求告知ADS8684 與 ADS8684A 之間區別
    發表于 12-23 06:09

    verilog計數器代碼為什么要使用這句話if (count===8\'bxxxxxxxx)count=8\'b0000_0000;

    and declarations of other variables used in the file./ always@(posedge clk)//Function realization
    發表于 12-21 14:49

    晶圓/晶粒/芯片之間區別和聯系

    本文主要介紹??????晶圓 (wafer)/晶粒 (die)/芯片 (chip)之間區別和聯系。 ? 晶圓(Wafer)——原材料和生產平臺?? 晶圓是半導體制造的基礎材料,通常由高純度的硅
    的頭像 發表于 11-26 11:37 ?1656次閱讀

    ADS8691無法寫入范圍選擇寄存器是哪里出了問題?

    ;b100000; always@(posedge clk_200 or negedge rst_n)begin if(!rst_n)begin rvs_a&lt
    發表于 11-21 06:34

    公有IP與私有IP之間區別

    今天我們來分享私有IP地址和公有IP地址的有什么區別?主要從接入方式、特點以及各自的優勢來說明。
    的頭像 發表于 09-21 10:49 ?970次閱讀

    環網柜、箱變之間區別是什么?

    蜀瑞創新小編告訴你:環網柜和箱變在電力系統中雖然都扮演著重要的角色,但它們之間存在一些關鍵的區別,主要體現在功能、結構、應用場合以及額定電壓等方面。
    的頭像 發表于 08-07 17:16 ?2388次閱讀

    修改“u-boot”設備樹中的電源后,使用\"STM32CubeProgrammer\"下載會一直重復下載,為什么?

    ;; regulator-max-microvolt = <1350000>; regulator-always-on; regulator-boot-on; }; v3v3
    發表于 07-23 07:57

    FPGA學習筆記---基本語法

    ... default ... endcase 7、連續賦值:assign, 問號表達式(?:) 8、always模塊:敏感表可以是電平、邊沿信號 9、begin...end(代碼塊?) 10、任務定義
    發表于 06-23 14:58

    Verilog:【8】基于FPGA實現SD NAND FLASH的SPI協議讀寫

    = sd_sec_write_data; assign sd_sec_write_end = (state == S_WRITE_END); always@(posedge clk or posedge rst) begin
    發表于 06-21 17:58

    請問ESP32中的esp-adf和esp-idf的區別是什么?

    是 esp-idf-v4.3.1 和esp-adf-master 你們他們有什么區別嗎?如果要是進行開發的話,使用哪個SDK 進行呢? 有知道的大神嗎?告訴我,指導我,謝謝
    發表于 06-19 06:01
    主站蜘蛛池模板: 国产精品资源在线观看 | 亚洲国产高清精品线久久 | 色偷偷7777www人 | 日本精品高清一区二区2021 | 免费特黄一区二区三区视频一 | 色之综合天天综合色天天棕色 | 青草久| 免费看曰批女人爽的视频网址 | 狠狠干狠狠干狠狠干 | 黄视频网站免费 | 日本最黄| 亚洲人成影网站~色 | 久久久精品午夜免费不卡 | 91久久精品青青草原伊人 | 日色视频 | 163黄页网又粗又长又舒服 | 国产成人精品一区 | 激情欧美一区二区三区中文字幕 | 深夜视频在线免费观看 | 日本aaaa毛片在线看 | 琪琪see色原在线20 | lsj老司机精品视频在线观看 | 免费男女 | 欧美成人三级网站 | 色网站在线 | 热re99久久精品国99热 | 久久伊人影视 | 久久成人亚洲 | 午夜久久久久久亚洲国产精品 | 屁股趴过来欠打高h | 最新地址四虎www4hutv | xxxx日本xx| 久久在精品线影院精品国产 | 欧美大狠狠大臿蕉香蕉大视频 | 国产乱码精品一区二区三 | 毛片在线看免费版 | 成人综合激情 | 国产一级αv片免费观看 | qvod高清在线成人观看 | 欧美天天爽 | 青草午夜精品视频在线观看 |