国产毛片a精品毛-国产毛片黄片-国产毛片久久国产-国产毛片久久精品-青娱乐极品在线-青娱乐精品

1、Verilog語法

發(fā)布時間:2020-3-20 14:29    發(fā)布者:dameihuaxia
1、Verilog語法


沒錯,我們就是拿C語言照貓畫虎,下面是一個“老虎”的模型。
我們一個個看他跟“貓”不一樣的地方

module nand(
            input   in1,
            input   in2,
            output   out
);

    wire    tmp;
    assign tmp = in1 & in2;
    assign out = ~tmp;

endmodule


模塊定義跟C語言的函數(shù)很相似吧
1、模塊必須使用“module”關(guān)鍵字,他也沒有返回值。
2、模塊沒有beginmodule,只有endmodule
3、模塊對外接口有input,output,inout,但為了入門著想,只談input和output

模塊內(nèi)部還有個中間變量耶,是不是看見了tmp就有很熟悉的感覺了。
沒錯,他就是中間“變量”,在硬件上他就是一根導線,wire望文生義即可。

看見了“=”就應該猜到這是賦值語句了,沒錯,但Verilog的語法要求前面必須有個苦B的assign關(guān)鍵字

至于“&”和“~”這2個運算符號,就不講了吧,C語法搞不清的兄弟,對不住了


有人會說,你這“變量”到底是int還是long還是flot抑或double呢?
好了,咱繼續(xù)照貓畫虎,不過老虎畢竟跟貓是不一樣的,比如老虎會虎嘯,貓只會喵喵。

wire[7:0]   tmp;
這一下子把tmp從一根線,擴展成了8根線,覺得是7根線的自己去看C語言課本去。

好了,我們要虎嘯了,同時喵喵幾下,對比著看

wire[7:0]   tmp;
wire[3:0]   high;

assign high = tmp[7:4];     //虎嘯的Verilog
high = tmp<<4;              //喵喵的C語言

硬件就是硬件,可以隨意飛線,你甚至可以把tmp里面的bit6,bit3,bit1,bit7組成一個Nibble
不知道Nibble不要緊,它就是Half Byte的

assign high = {tmp[6],tmp[3],tmp[1],tmp[7]};        //虎嘯的Verilog

high  = (tmp & 0x40) ? 0x08 : 0;                //喵喵的C語言
high |= (tmp & 0x08) ? 0x04 : 0;                //喵喵的C語言
high |= (tmp & 0x02) ? 0x02 : 0;;               //喵喵的C語言
high |= (tmp & 0x80) ? 0x01 : 0;;               //喵喵的C語言

這下知道喵喵跟虎嘯的差距了吧,C語言,把如貓?zhí)硪?表達式都用上了,還是4行代碼才表達出自己的意圖。
當然,Verilog也有他的?表達式,那用上了,就真的是如虎添翼了

C語言的switch/case語句
switch(tmp)
{
    case 1:
        high =1;
        break;
    case 3:
        high =5;
        break;
    case 5:
        high =2;
        break;
    case 9:
        high =1;
        break;
    default:
        high =11;
}
Verilog的case語句
case(tmp)
    1:          high =1;
    2:          high =5;
    3:          high =1;
    4:          high =1;
    default:    high = 1;

發(fā)現(xiàn)了沒,首先打字要少敲很多case了吧,case已經(jīng)升級當主管了,小羅羅們直接跟這冒號就可以了。
細心的文藝青年,應該發(fā)現(xiàn)了一個大秘密,那個四處張揚,到處留種的break居然不見了。
Verilog不需要break了,它默認每個語句自動break,這時有人又擔心,那我有2個語句咋辦?

問得好,又有2個keyword要粉末登場了,begin/end
學會Pascal語言的朋友,肯定認得他倆,在C語言中被{和}所替代

Verilog本來也想用{和}的,畢竟寫代碼是要敲鍵盤的,能少敲誰也不愿意多敲。
可惜{和}被用掉了,用在了哪里?到上面找去,

case(tmp)
    1,2,3,4:
    begin
        high =1;
        high1 =3;
        high8 =9;
    end
    default:
        high = 1;

這個排版,是不是又點更像C語言的風格了
你也許已經(jīng)看到了,C語言中多個case項公用一段代碼的情況,在Verilog里面也有,而且更TMD的簡潔

if/else語句就不講了,這方面貓和老虎太像了,照貓畫虎就八九不離十了。


好了,下面有個用得非常多的always語句

always(tmp1, tmp2)
    begin
        out1 = tmp1 ^ tmp2;
        out2 = tmp1 + tmp2;
    end
又是喵喵和虎嘯的區(qū)別了,C語言的while也是always的意思,但while不如always忠誠。
C的while語句,是隨著CPU的時鐘節(jié)奏,一步一步的走,然后Loop循環(huán)回來,直到永遠或者有人叫她出臺(霸王的break或者while條件不滿足了)
Verilog的always可就忠誠多了,只要tmp1和tmp2中的任何一個變動,out1和out2都跟著動,clk來不來都會工作,這就是主動和被動的差別


好了,看到這里,你應該知道,文藝青年和苦B青年其實也有很多共同之處的,如果你認識文藝青年,那跟苦B青年交朋友也不難了。
本文地址:http://www.qingdxww.cn/thread-579455-1-1.html     【打印本頁】

本站部分文章為轉(zhuǎn)載或網(wǎng)友發(fā)布,目的在于傳遞和分享信息,并不代表本網(wǎng)贊同其觀點和對其真實性負責;文章版權(quán)歸原作者及原出處所有,如涉及作品內(nèi)容、版權(quán)和其它問題,我們將根據(jù)著作權(quán)人的要求,第一時間更正或刪除。
dameihuaxia 發(fā)表于 2020-3-22 14:57:43
1111111111111111111111111111
您需要登錄后才可以發(fā)表評論 登錄 | 立即注冊

廠商推薦

  • Microchip視頻專區(qū)
  • PIC18-Q71系列MCU概述
  • 想要避免發(fā)生災難,就用MPLAB® SiC電源仿真器!
  • 為何選擇集成電平轉(zhuǎn)換?
  • 5分鐘詳解定時器/計數(shù)器E和波形擴展!
  • 貿(mào)澤電子(Mouser)專區(qū)
關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權(quán)所有   京ICP備16069177號 | 京公網(wǎng)安備11010502021702
快速回復 返回頂部 返回列表
主站蜘蛛池模板: 韩国毛片在线观看 | 天天操天天干天天玩 | 天堂在线观看免费视频 | 亚洲国产成人私人影院 | 最近2019中文字幕 | 在线看片91| 日韩经典在线观看 | 青青久久国产成人免费网站 | 久热中文字幕在线精品免费 | 国产一级特黄aa大片高清 | 91在线免费公开视频 | 99精彩视频在线观看 | 日韩在线手机看片免费看 | 国产精品资源在线观看 | 亚洲综合天堂 | 91亚洲国产成人久久精品网址 | 久久精品亚洲一级毛片 | 亚洲欧美在线观看 | 91热精品视频 | 日韩一级在线播放 | 玖玖中文 | 国内精品久久久久久久影视麻豆 | 精品99一区二区三区麻豆 | 国产麻豆剧传媒精品好看的片 | 天美麻豆精东果冻天美传媒 | 色播五月激情五月 | 在线毛片观看 | 男女午夜免费视频 | 动作动漫在线观看免费网站 | 日韩精品国产自在欧美 | 亚洲国产欧美日韩一区二区三区 | 久久手机视频 | 国产区精品福利在线观看精品 | 国产色产综合色产在线观看视频 | 热99re久久精品天堂vr | 日韩在线一区二区三区免费视频 | 中文字幕在线一区二区在线 | 欧美高清国产在线观看 | 91福利刘玥国产在线观看 | 清纯唯美亚洲综合激情 | 人人干人人模 |