1. 程式人生 > >關於verilog幾條語法

關於verilog幾條語法

1.關於wire和reg型別的使用:

  • input的變數一定只能是wire。output的變數可以是wire也可以是reg。inoutput的變數只能是wire型,因為型別中含有input成分。
  • 所有變數不加說明預設定義為wire型。
  • 在assign語句中使用wire型別。在always語句塊中使用reg型別。

2.位拼接符 { }

  • 位拼接符使用:把某些倍號的某些位詳細地列出來,中間用逗號分開,最後用大括號括起來表示一個整體訊號。拼接時高位在前。
eg: input [3:0] numberH;
    input [3:0] numberL;
    output wire [7
:0] number; assign number = {numberH,numberL};

3.case endcase語句與if else語句

  • if語句語法基本與c語言相同,也具有優先順序。
eg: if(flag == 0)
      begin single = 3;end
    else if(flag == 1)
      begin single = 2;end
    else if(flag == 2)
      begin single = 1;end
    else
      begin single = 0;end```
  • case語句,不具有優先順序
eg: case(flag)
    2'b0: single = 3;
    2'b1: single = 2;
    2'b2: single = 1;
    default: single = 0;
    endcase
  • if語句與case語句:
    if佔用資源相對較少,但執行時間較長。case語句與之相反。

4.always語句塊與assign語句

always語句塊一般用在時序邏輯電路中,在組合邏輯中也有應用。
/*敏感訊號是需要檢測的訊號,當這些訊號發生變化時,always語句塊就會更新一次。對於時序邏輯而言,還需要有posedge,negedge,posedge or negedge修飾。*/
語法: [email protected](敏感訊號) begin 語句體; end
  • always組合邏輯
  • 在組合邏輯電路中,用阻塞賦值 =
eg:  [email protected](a,b,c,d,x)
     begin
       case(x)
       2'b0: y = a;
       2'b1: y = b;
       2'b2: y = c;
       default: y = d;
       endcase
     end 
  • always時序邏輯
    在時序邏輯電路中,用非阻塞賦值 <=
eg:  [email protected](posedge clk or negedge res)
     begin
       if(clk)
         y <= a;
       else if(res == 0)
         y <= 0;
       else y <= y;
     end 

5.assign 目標變數 = 驅動表示式

 eg: assign y = a & b;

6.多目運算子 ? :

eg: Y = (a&b)?c:d;

/*與c語言神似的運算子。若a&b為真,Y=c,否者 Y=d。*/

相關推薦

關於verilog語法

1.關於wire和reg型別的使用: input的變數一定只能是wire。output的變數可以是wire也可以是reg。inoutput的變數只能是wire型,因為型別中含有input成分。 所有

Markdown-常用到的語法

一、標題 一個#是一級標題,二個#是二級標題,以此類推。支援六級標題。 注:標準語法一般在#後跟個空格再寫文字。 二、字型 加粗:要加粗的文字左右分別用兩個*號包起來; 斜體:要傾斜的文字左右分別用一個*號包起來; 斜體加粗:要傾斜和加粗的文字左右分別用三

linux查看前命令記錄

ctrl+ tor etc 歷史記錄 size 記錄 說明 分頁 hist 1、按上下箭頭鍵2、history|more分頁顯示3、vi /etc/profile找HISTSIZE=1000,說明你最多能存1000條歷史記錄。4、!!執行最近執行的命令5、history|h

當前插入的線段能完整覆蓋存在的線段 樹狀數組 HDU 5372 Segment Game

刪除 som normal 時間 time ace others ram uniq http://acm.hdu.edu.cn/showproblem.php?pid=5372 Segment Game Time Limit: 3000/1500 MS

10年程序員總結的20經驗教訓

產品 時間戳 簡單 快速 子郵件 啟動 時也 人員 觸發 開發    1.從小事做起,然後再擴展   無論是創建一個新的系統,還是添加功能到現有的系統中,我總是從一個簡單到幾乎沒有任何所需功能的版本啟動,然後再一步一步地解決問題,直到滿意為止。我從來沒有妄想過能夠一步登天。

給Java程序員的建議

內容 這樣的 如何學習 讀取 心理 web開發 最簡 reduce 距離 對於Java程序猿學習的建議 這一部分其實也算是今天的重點,這一部分用來回答很多群裏的朋友所問過的問題,那就是LZ你是如何學習Java的,能不能給點建議? 今天LZ是打算來點幹貨,因此咱們就不

有關奇怪的計劃和常識

ext line tex 目前 ati 是否 ora 掌握 其他 任何情況下,水平都不可能,因為任何“沒有搞懂知識點”的玄學方式,迅速上漲。推論1,因而,不可能逃過、跳過、水過試圖掌握和理解知識點的行為推論2,因而,更高效率的學習例題會有幫助推論3,能否做出一道未知的題目

十大健康好習慣?看看你占了?

廣告十大健康好習慣?看看你占了幾條? 不良的生活習慣不知不覺給人們的健康帶來威脅,很多慢性病呈現年輕化趨勢。十大健康生活方式,快來看看你占了幾條?   一、勤洗手   德國格賴夫斯瓦爾德大學研究人員發現,只要工作人員勤洗手就能有效預防傳染性疾病的傳播,降低員工病假率。   美國疾病控制與預防中心認為,洗

上海嶽城科技快速學習新技術的建議

軟件 精通 重要 www. upload 繼承 項目 bject 開發 面對現在更新迅速的新技術,如何快速掌握,以滿足工作的需要,是大部分開發者所面臨的問題之一。它或許影響著你未來職業生涯的發展。 Hanneli Tavante近日在Our Daily Codes網站上發表

mysql千萬級數據表,創建表及字段擴展的建議

計算 count 兩種 沒有 key值 null .cn 優點 關系 一:概述 當我們設計一個系統時,需要考慮到系統的運行一段時間後,表裏數據量大約有多少,如果在初期,就能估算到某幾張表數據量非常龐大時(比如聊天消息表),就要把表創建好,這篇文章從創建表,增加

Oracle查詢前數據的方法

str 文章 select () 引用 hive 排序 com 指正 在Oracle中實現select top N:由於Oracle不支持select top 語句,所以在Oracle中經常是用order by 跟rownum的組合來實現select top n的查詢。簡單

C# 收集ToString()格式

tostring div 其中 格式 post spa ring str class string r1 = 1200.ToString("C");//¥1,200.00 string r2 = 25.ToString("D3");//025 string r3 = 25

JAVA List根據字段排序以及取前數據

字段排序 .so ret sort etime com sub clas tar 1.經常會遇到對組裝的list排序或提取list中前幾條數據,例如: 根據時間排序: 1 list.sort((o1, o2) -> o2.getCreateTime().compar

linux 查找最後數據

tail gpo 查詢 數字 inf image lin 分享圖片 分享 tail(選項)(參數) -n<N>或——line=<N>:輸出文件的尾部N(N位數字)行內容。例如:grep 查詢 2018-02-*/*.log |tail -n 5查詢

查看linux版本的命令

lease gpo class iss linux nbsp linux版本 pro roc 1)uname -a 2)cat /proc/version 3)cat /etc/issue 4) ls /boot 5) lsb_release -a 查看li

在夏天到來之際,美麗的你只需提前準備短袖就能簡單到美麗動人

夏天短袖夏之美麗,風雨拂落,季節更替,繁花爛熳的春天在爭奇鬥艷中盡數落幕,緊接著,綠意濃濃、果實孕蘊、瓜果飄香的夏景,追趕著夏天的美麗的節拍,盡顯清麗秀美與溫馨暢爽。  在一個艷陽高照的夏日,走進果園,親近綠蔭,桃李滿枝掛,綠蔭中透著果香,園中桃李芳菲,果粒成熟誘人,真叫人垂涎欲滴,當一一摘下,放入口中時,甜

最近常用的sql語句

sql語句 total HA ont let where select查詢 新的 做的 1.查詢表是否為空 select count(*) as total from 表 看返回值,如果>0則不為空 =0為空 2.刪除表數據但保留表結構 delete from 表

mysql或者oracle分組排序取前數據

esc rom group over nbsp oracle oracl 排序 _id mysql: select a.* from(select t1.*,(select count(*)+1 from 表 where 分組字段=t1.分組字段 and 排序字段<t

ARM有memory barrier 的指令?分別有什麽區別?

mit 分支 AS 指令集 tlb line commit UC barrier 從ARMv7指令集開始,ARM提供3條內存屏障指令。 (1)數據存儲屏障( Data Memory Barrier,DMB) 數據存儲器隔離。DMB指令保證:僅當所有在它前面的存儲器訪問操作都

匯編學習-簡單的匯編指令

使用 isp 4條 open alt %s str h+ Coding 檢測點2.1 (1) 寫出每條匯編指令執行後相關寄存器中的值mov ax,62627 AX=_____?mov ah,31H AX=_____?mov al,23H