《電子技術應用》
您所在的位置:首頁 > 可編程邏輯 > 業界動態 > 零基礎教你學FPGA之Verilog語法基礎(上)

零基礎教你學FPGA之Verilog語法基礎(上)

2015-02-09
關鍵詞: FPGA Verilog 基礎

    這幾天復習了一下Verilog的語法知識,就借此寫寫我對這些東西的想法吧。感覺呢,是和C語言差不多,具有C語言基礎的朋友學起來應該沒什么問題,和C語言相同的地方就不說了吧,重點說一下不同點吧。

  1、模塊的結構

  模塊呢,是Verilog的基本設計單元,它主要是由兩部分組成,一個是接口,另一個是邏輯。下面舉一個小例子說明一下:

  module xiaomo (a,b,c,d);

  input a,b;

  output c,d;

  assign c=a|b;

  assign d=a&b;

  endmodule

  所謂接口就是第二,三行,說明了一個模塊的信號流向,很明顯,a,b是輸入,c,d是輸出;第四第五行是邏輯,即輸入和輸出之間的關系即c的值是a或b的結果。assign 是連續賦值語句,這個以后再說。

  第一行是模塊的端口聲明,即說明一個模塊具體有那幾個接口,有多少接口寫多少,直接套模板就可以module(接口1,接口2……);endmodule代表此模塊結束;

  2、模塊的內容

  模塊的內容包括3個部分,I/O說明,內部信號說明和功能定義。

  關于I/O說明有三種格式,即輸入、輸出、輸入輸出,第三種格式代表信號可以雙向傳送。在寫I/O說明的時候要注明信號位寬,即由幾位組成,例 如 input [7:0] xiaomo;代表輸入一個8位的信號“小墨”,注意這里要用中括號,第一位是位寬減1,接一個冒號,再接數字0,再接端口名;

  關于內部信號說明要用到和端口有關的wire和reg類型變量的聲明。模板和上面類似,關于reg和wire變量后面再說。

  關于功能定義是模塊中最重要的部分,有三種方法可在模塊中產生邏輯

  (1)用assign聲明語句,assign 語句主要用于組合邏輯電路

  (2)用實例元件,例如 and #2 u1(q,a,b);(這個我自己概念也有點模糊,不知道怎么解釋)

  (3)用always塊,例如 always @(clk or clr)

  begin

  ………

  end;

  always語句既可以用于描述組合邏輯,也可以描述時序邏輯,但主要以描述時序邏輯電路為主。

  小結

  在verilog語法中,所有的過程塊(包括initial塊,always塊),連續賦值語句,實例引用都是并行的,也就是說在一個模塊中遇 到這些語句就是同時執行的,而且沒有先后次序。只有連續賦值語句assign和實例引用語句可以獨立于過程塊存在于模塊的功能定義部分,即這兩種語句可以 不用在那兩個過程塊里執行,也可以在模塊的功能定義部分執行,例如第一個例子。

  這些和C語言有點不同,對于初學者來說應該都要弄明白。

  3、數據類型、變量、常量

  對于初學者來說,數據類型只要掌握好reg,wire,integer和parameter型就夠了,其他類型可以暫時不用去理會。

  (1)常量就不說了,比較基礎。

  (2)參數型(parameter型)

  parameter是用來定義一個常量的,個人理解和C語言里面的int,float 語句一樣,不一樣的是parameter既可以定義整型,也可以定義浮點型或者是表達式。例如

  

360桌面截圖20140225201109.jpg

 

  (3)變量

  wire型數據常用來表示用以assign關鍵字指定的組合邏輯信號。Verilog程序模塊中輸入、輸出信號類型默認時自動定義成wire型。例子

  

360桌面截圖20140225202514.jpg

 

  reg型數據是寄存器變量,常用來表示always塊中的指定信號,常代表觸發器。注意,在always塊中被賦值 的每一個信號都必須定義為reg型

  。

  

360桌面截圖20140225202921.jpg

 

  

360桌面截圖20140225203249.jpg

 

  上面這句話表示不理解,求大神解釋...先放這兒吧..

  memory型

  由于Verilog中沒有多維數組的存在,memory數據就是通過擴展reg型數據的地址范圍來生成的,他的格式為

  reg[n-1:0] 存儲器名[m-1:0];

  我舉個例子,比如我定義 reg[7:0] xiaomo[255:0];

  這句話的意思是說,我定義了一個名叫“小墨”的存儲器,這個存儲器中有256個8位reg型寄存器,只要理解了這句話,就差不多了。注意,當沒有中括號時代表的是一位,例如

  reg xiaomo[m-1:0];代表一個名為“小墨”的存儲器,里面有m個1位的reg型寄存器。

 還有個地方我感覺不太明白,見下圖,誰知道這句話上面意思...求大神解釋...

 

  

360桌面截圖20140225204415.jpg

 

  下面這幾句話需要注意

  

360桌面截圖20140225204900.jpg

 

  4、運算符及表達式

  這里和C語言幾乎一樣,就不做過多解釋了吧。就說一下位拼接運算符和位減運算符,這里C語言里面沒有。

  直接看個例子就可以

  

360桌面截圖20140225205538.jpg

 

  

360桌面截圖20140225205844.jpg

 

  5、賦值語句

  賦值語句共有兩種,即非阻塞賦值,和阻塞賦值。

  (1)非阻塞賦值

  非阻塞賦值方式所賦值的變量不能立即就為下面語句所用,只有當塊結束后才能得到上一次所附的值,這種賦值方式是編寫可綜合的時序邏輯時常用的賦值方式。例如

  

360桌面截圖20140225211312.jpg

 

  這個例子的意思是,當時鐘上升沿到來時,a的值給b,b的值給c,但是只有當塊結束時才完成賦值,這么說吧,假如原來a=1,b=2那么當時鐘上升沿到來時a=1,b=2,c=2;當塊結束時,a=b=c=1;

  這么理解對嗎?求大神指點...

  

360桌面截圖20140225211856.jpg

 

  (2)阻塞賦值

  與非阻塞賦值不同,賦值語句執行完后塊才結束,b 的值在賦值語句結束后立刻改變,但是在時序邏輯電路中可能會出問題。

  always @(clk or clr);

  begin

  b=a;

  c=b;

  end

  假如開始a=1;當當時鐘上升沿到來時,a=b=c=1;然后塊結束

  

360桌面截圖20140225212539.jpg

本站內容除特別聲明的原創文章之外,轉載內容只為傳遞更多信息,并不代表本網站贊同其觀點。轉載的所有的文章、圖片、音/視頻文件等資料的版權歸版權所有權人所有。本站采用的非本站原創文章及圖片等內容無法一一聯系確認版權者。如涉及作品內容、版權和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經濟損失。聯系電話:010-82306118;郵箱:aet@chinaaet.com。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
欧美一区二区精美| 欧美理论电影网| 亚洲啪啪91| 久久都是精品| 午夜精品视频在线| 亚洲欧美日韩国产| 亚洲天堂av图片| 一区二区三区偷拍| 亚洲图片在线| 亚洲免费视频中文字幕| 亚洲一区二区在| 亚洲欧美激情一区二区| 亚洲欧美国产一区二区三区| 亚洲私人影院在线观看| 亚洲中字黄色| 欧美一区二区三区啪啪| 欧美在线亚洲在线| 亚洲国产一二三| 亚洲区免费影片| 一本久道久久综合中文字幕| 亚洲午夜av电影| 亚洲专区国产精品| 午夜影视日本亚洲欧洲精品| 欧美一区二区观看视频| 久久久久久久波多野高潮日日| 久久久99精品免费观看不卡| 久久伊人精品天天| 欧美好骚综合网| 欧美性大战久久久久久久蜜臀| 国产精品国码视频| 国产综合第一页| 亚洲国产美女| 99视频精品在线| 亚洲欧美国产毛片在线| 久久爱www久久做| 最新亚洲视频| 亚洲一本视频| 欧美一区视频| 榴莲视频成人在线观看| 欧美日韩成人一区| 国产精品一区二区女厕厕| 国内外成人免费激情在线视频网站 | 欧美日韩中文| 国产精品综合视频| 亚洲国产成人精品久久久国产成人一区| 亚洲经典在线| 亚洲无人区一区| 久久www成人_看片免费不卡| 亚洲精品人人| 亚洲欧美国产制服动漫| 久久综合九色综合欧美狠狠| 欧美精品网站| 国产视频一区二区三区在线观看| 亚洲成人在线视频网站| 中文无字幕一区二区三区| 久久狠狠亚洲综合| 亚洲色图综合久久| 久久九九国产| 欧美三级在线| 精久久久久久| 在线中文字幕日韩| 亚洲国产清纯| 亚洲专区一区| 免费成人黄色| 国产精品综合视频| 亚洲欧洲另类国产综合| 欧美亚洲免费在线| 一本久道久久综合中文字幕 | 国产乱码精品| 91久久亚洲| 欧美主播一区二区三区| 亚洲图片在线观看| 美女久久网站| 国产精品视频免费在线观看| 亚洲国产精品尤物yw在线观看| 新狼窝色av性久久久久久| 亚洲精品视频免费在线观看| 久久er精品视频| 欧美日韩妖精视频| 亚洲第一主播视频| 欧美一区二区在线看| 亚洲色无码播放| 欧美成人午夜激情| 国产香蕉97碰碰久久人人| 99re8这里有精品热视频免费| 亚洲高清成人| 久久国内精品自在自线400部| 欧美日韩免费网站| 亚洲高清av| 久久国产色av| 欧美在线一二三四区| 欧美视频一区二区三区四区| 亚洲国产91| 亚洲国产精品va在看黑人| 性做久久久久久久久| 欧美日韩无遮挡| 亚洲精品国产精品久久清纯直播 | 另类春色校园亚洲| 国产综合色一区二区三区| 亚洲在线观看视频| 亚洲午夜电影在线观看| 欧美精品一区二区三区视频| 亚洲成人影音| 91久久精品国产| 美女精品在线| 有码中文亚洲精品| 亚洲高清成人| 老巨人导航500精品| 国产一区二区三区久久久| 亚洲欧美三级伦理| 欧美一区二区免费观在线| 欧美午夜精品伦理| 99国内精品| 亚洲私拍自拍| 欧美午夜片欧美片在线观看| 亚洲美女少妇无套啪啪呻吟| 日韩视频在线观看国产| 欧美乱人伦中文字幕在线| 亚洲国产精品成人一区二区| 91久久综合亚洲鲁鲁五月天| 久热国产精品| 亚洲高清三级视频| 日韩亚洲欧美在线观看| 欧美大胆a视频| 亚洲日本久久| 一区二区三区国产| 欧美日韩精品一区二区三区四区| 日韩视频精品在线观看| 亚洲深夜福利在线| 国产精品免费网站在线观看| 亚洲性色视频| 欧美在线精品免播放器视频| 国产午夜精品久久久久久免费视| 欧美亚洲综合久久| 久久久青草青青国产亚洲免观| 国语对白精品一区二区| 亚洲国产精品va在线观看黑人| 欧美本精品男人aⅴ天堂| 亚洲国产一成人久久精品| 99在线热播精品免费| 欧美日韩一区三区| 亚洲影院免费观看| 久久久久亚洲综合| 亚洲国产电影| 亚洲一区二区三区乱码aⅴ| 国产精品毛片一区二区三区| 午夜精品视频一区| 老司机亚洲精品| 亚洲精品一区二区在线观看| 亚洲欧美清纯在线制服| 国产一区91精品张津瑜| 亚洲精品国精品久久99热| 欧美日韩一区二区三区免费| 亚洲欧美国产日韩天堂区| 久久久噜噜噜久久中文字幕色伊伊 | 亚洲视频碰碰| 久久久久青草大香线综合精品| 在线观看视频一区二区| 一区二区三区高清在线观看| 国产精品视频免费观看| 亚洲第一精品夜夜躁人人躁| 欧美电影免费观看高清| 中文日韩电影网站| 久久一区二区三区av| 日韩午夜电影av| 久久精品国产免费看久久精品| 在线国产精品一区| 亚洲欧美国产一区二区三区| 国产在线欧美| 在线一区欧美| 国产一区二区三区四区五区美女 | 欧美天天在线| 亚洲大胆在线| 欧美午夜宅男影院| 亚洲二区精品| 国产精品视频999| 亚洲精选视频在线| 国产伦精品一区二区三区照片91 | 亚洲色无码播放| 精品成人一区| 欧美夜福利tv在线| 亚洲精品国产品国语在线app| 欧美在线精品一区| 亚洲日本理论电影| 久久人人爽爽爽人久久久| 99精品99| 欧美 日韩 国产在线| 亚洲综合久久久久| 欧美日本韩国一区二区三区| 篠田优中文在线播放第一区| 欧美日韩成人综合天天影院| 欧美一区1区三区3区公司| 欧美日韩三级电影在线| 亚洲丰满在线| 国产丝袜美腿一区二区三区| 亚洲天堂av电影| 亚洲人成在线播放| 久久天天躁狠狠躁夜夜av| 亚洲一区二区三区国产| 欧美日韩卡一卡二|