色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

FPGA開(kāi)發(fā)環(huán)境的搭建和verilog代碼的實(shí)現(xiàn)

CHANBAEK ? 來(lái)源:小小研究生 ? 作者:xxyjs2020 ? 2023-05-11 17:30 ? 次閱讀

FPGA需要良好的數(shù)電模電基礎(chǔ),verilog需要良好C語(yǔ)言基礎(chǔ)。

FPGA的準(zhǔn)備工作:下載Quartus II,Modelsim和notepad++(notepad++是文本編輯器,quartus有自帶的,可以不裝,也可以用其他的)。后臺(tái)回復(fù)“FPGA軟件下載”獲取安裝包。安裝完成后,實(shí)現(xiàn)Quartus II與Modelsim和notepad++的關(guān)聯(lián)(不關(guān)聯(lián)notepad++的話默認(rèn)用quartus自帶的)。方法是:tools欄的option,如下圖選中Win64。

圖片

關(guān)聯(lián)notepad++如圖,在文件夾中選擇安裝好的exe應(yīng)用程序。

圖片

Verilog可能是FPGA路上的第一個(gè)絆腳石,但是代碼類(lèi)的學(xué)習(xí)都是熟能生巧,掌握規(guī)律只需3天即可上手。

基礎(chǔ)語(yǔ)法

1、區(qū)分大小寫(xiě),分號(hào)結(jié)尾(空格、換行無(wú)意義),單行注釋用//,多行注釋用/* 代碼 */,標(biāo)識(shí)符區(qū)分大小寫(xiě),關(guān)鍵字小寫(xiě)。

2、0表示假,1表示真,X/x表示未知,Z/z表示高阻。

3、十進(jìn)制('d 或 'D),十六進(jìn)制('h 或 'H),二進(jìn)制('b 或 'B),八進(jìn)制('o 或 'O),4'b1011中4表示位數(shù),b表示進(jìn)制,1011是數(shù)值。 字符串用雙引號(hào)且不能換行。

4、最常用的數(shù)據(jù)類(lèi)型:wire和reg,wire 表示物理連線,reg表示存儲(chǔ)單元。

5、表達(dá)式由操作符和操作數(shù)構(gòu)成,其中操作符有算術(shù)、關(guān)系、等價(jià)、邏輯、按位、歸約、移位、拼接、條件共9種,操作數(shù)可以是任意的數(shù)據(jù)類(lèi)型。注意邏輯與(&&)、按位與(&)。

數(shù)電中有組合邏輯電路和時(shí)序邏輯電路。組合邏輯電路模塊:

6、連續(xù)賦值語(yǔ)句以assign開(kāi)頭用于對(duì) wire 型變量進(jìn)行賦值

7、普通時(shí)延:assign #10 Z = A & B ; 把A與B的結(jié)果延時(shí)10個(gè)單位再賦值給Z。 隱式時(shí)延:wire #10 Z = A & B; 聲明wire型變量時(shí)對(duì)其進(jìn)行包含一定時(shí)延的連續(xù)賦值。 A 或 B 任意一個(gè)變量發(fā)生變化,那么 Z會(huì)有 10 個(gè)時(shí)間單位的時(shí)延。 如果在這 10 個(gè)時(shí)間單位內(nèi),A 或 B 任意一個(gè)值又發(fā)生了變化,那么計(jì)算 Z 的新值時(shí)會(huì)取 A 或 B 當(dāng)前的新值。 所以稱之為慣性時(shí)延,即信號(hào)脈沖寬度小于時(shí)延時(shí),對(duì)輸出沒(méi)有影響。 因此仿真時(shí),時(shí)延一定要合理設(shè)置,防止某些信號(hào)不能進(jìn)行有效的延遲。

時(shí)序邏輯電路模塊:

8、一個(gè)模塊中可以包含多個(gè) initial 和 always 語(yǔ)句,但 2 種語(yǔ)句不能嵌套使用。 語(yǔ)句在模塊間并行執(zhí)行,與前后順序無(wú)關(guān)。 語(yǔ)句內(nèi)部是順序執(zhí)行的(非阻塞賦值除外)。 **initial **語(yǔ)句從 0 時(shí)刻開(kāi)始執(zhí)行,只執(zhí)行一次,多個(gè) initial 塊之間是相互獨(dú)立的。 如果 initial 塊內(nèi)包含多個(gè)語(yǔ)句,需要使用關(guān)鍵字 begin 和 end 組成一個(gè)塊語(yǔ)句。 只包含一條語(yǔ)句可以不用。 **always **語(yǔ)句是重復(fù)執(zhí)行的。 always 語(yǔ)句塊從 0 時(shí)刻開(kāi)始執(zhí)行其中的行為語(yǔ)句; 當(dāng)執(zhí)行完最后一條語(yǔ)句后,便再次執(zhí)行語(yǔ)句塊中的第一條語(yǔ)句,如此循環(huán)反復(fù)。 always 語(yǔ)句多用于仿真時(shí)鐘的產(chǎn)生,信號(hào)行為的檢測(cè)等。

后面會(huì)結(jié)合數(shù)電詳細(xì)講解。

推薦使用hdlbits網(wǎng)站刷題,非常基礎(chǔ),給出了模塊的框架,只需要按照需求填入關(guān)鍵語(yǔ)句。

1、熟悉wire

圖片

module top_module(
    input a,
    input b,
    input c,
    input d,
    output out,
    output out_n ); 
    assign out=(a&b)|(c&d);
    assign out_n=~((a&b)|(c&d));
endmodule

verilog采用自頂向下的設(shè)計(jì)方法,分模塊設(shè)計(jì),這樣做的好處是,不同的人可以負(fù)責(zé)不同的模塊,最后組裝起來(lái)。 每個(gè)模塊都以Module 模塊名開(kāi)始,以endmodule結(jié)尾,且需要定義輸入輸出,以及輸出與輸入的關(guān)系。 在這個(gè)實(shí)例中,需要填入的就是兩個(gè)assign語(yǔ)句,得到out和out_n。

2、熟悉向量

當(dāng)位寬大于 1 時(shí),wire 或 reg 即可聲明為向量的形式。

圖片

module top_module( 
    input [2:0] a,
    input [2:0] b,
    output [2:0] out_or_bitwise,
    output out_or_logical,
    output [5:0] out_not
);
assign out_or_bitwise=a|b;
assign    out_or_logical=a||b;
assign  out_not={~b,~a};
endmodule

邏輯或||和位或|的區(qū)別:位或是兩個(gè) N 位向量之間的每一位都進(jìn)行或運(yùn)算形成N位新向量,而邏輯運(yùn)算將整個(gè)向量視為布爾值(true = 非零,false = 零)并生成 1 位輸出。{向量1,向量2,...}可以用于合并向量。位數(shù)少時(shí)可以用于向量反轉(zhuǎn),例如in[3:0]反轉(zhuǎn)可以使out={in[0],in[1],in[2],in[3]}。

圖片

module top_module (
    input a, b, c, d, e,
    output [24:0] out );//
    assign out=~{{5{a}},{5{b}},{5{c}},{55vgeo944t},{5{e}}}^{5{a,b,c,d,e}};
endmodule

向量復(fù)制的格式是{復(fù)制次數(shù){向量}},注意復(fù)制后的向量需要用{}。異或是a^b,同或是~a^b。

3、熟悉模塊

和之前在python中一樣,模塊實(shí)例化有非常重要的作用。如果事先定義一個(gè)模塊的功能,后面每一次使用時(shí),都只需要讓自己定義的端口對(duì)應(yīng)上原模塊的端口,就可以調(diào)用。如果不這樣做,每一次使用都需要寫(xiě)一次這個(gè)模塊的代碼。

實(shí)例化有兩種方式,按位置:mod_a instance1 ( wa, wb, wc );按名稱:mod_a instance2 ( .out(wc), .in1(wa), .in2(wb) );前一種不建議使用,因?yàn)槿绻K的端口列表發(fā)生更改,則還需要查找并更改模塊的所有實(shí)例化以匹配新模塊。后一種雖然寫(xiě)起來(lái)比較復(fù)雜,但是將每一個(gè)端口都對(duì)應(yīng)上,與位置無(wú)關(guān)。

圖片

按名稱:

module top_module ( input a, input b, output out );
mod_a instance1 (
    .out(out),
    .in1(a), 
    .in2(b) 
 );
endmodule

按位置:

module top_module ( input a, input b, output out );
    mod_a instance1 (a,b,out);
endmodule

top_module是模塊名,這個(gè)模塊有兩個(gè)輸入端口和一個(gè)輸出端口。這個(gè)模塊里用到了一個(gè)事先定義好的函數(shù)mod_a,也有兩個(gè)輸入端口和輸出端口。將端口對(duì)應(yīng)起來(lái),這個(gè)模塊就可以實(shí)現(xiàn)mod_a的功能。

下面看幾個(gè)復(fù)雜的例子:

移位寄存器

圖片

module top_module ( input clk, input d, output q );
wire q1,q2;
my_dff d0(.clk(clk),.d(d),.q(q1));
 my_dff d1(.clk(clk),.d(q1),.q(q2));
 my_dff d2(.clk(clk),.d(q2),.q(q));
endmodule

這個(gè)模塊名是top_module,有時(shí)鐘,輸入和輸出。實(shí)現(xiàn)定義了一個(gè)函數(shù)my_dff,整個(gè)模塊使用了三次D觸發(fā)器,因此需要實(shí)例化三次。對(duì)于函數(shù)d0,d1,d2都需要把端口對(duì)應(yīng)上,由于q1,q2是引入的變量,用來(lái)將前一級(jí)觸發(fā)器輸出和后一級(jí)觸發(fā)器輸入連接上,所以需要先聲明q1,q2是wire型變量。

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • FPGA
    +關(guān)注

    關(guān)注

    1630

    文章

    21796

    瀏覽量

    605245
  • 邏輯電路
    +關(guān)注

    關(guān)注

    13

    文章

    494

    瀏覽量

    42681
  • Verilog
    +關(guān)注

    關(guān)注

    28

    文章

    1351

    瀏覽量

    110267
  • C語(yǔ)言
    +關(guān)注

    關(guān)注

    180

    文章

    7614

    瀏覽量

    137438
  • 開(kāi)發(fā)環(huán)境

    關(guān)注

    1

    文章

    230

    瀏覽量

    16673
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    嵌入式arm linux Java運(yùn)行環(huán)境搭建和注意事項(xiàng)是什么

    嵌入式linux Java運(yùn)行環(huán)境搭建和注意事項(xiàng)我的開(kāi)發(fā)硬件環(huán)境搭建步驟1. 下載 ORacle 公司的ejdk-8u211-linux-a
    發(fā)表于 12-27 06:23

    ECU試驗(yàn)測(cè)試環(huán)境搭建和支持服務(wù)

    ECU試驗(yàn)測(cè)試環(huán)境搭建和支持服務(wù)  隨著電子技術(shù)在汽車(chē)行業(yè)中的應(yīng)用不斷增長(zhǎng),汽車(chē)電子產(chǎn)品系統(tǒng)日益復(fù)雜,如何保證汽車(chē)電子產(chǎn)品的質(zhì)量也越
    發(fā)表于 03-11 10:59 ?1629次閱讀

    fpga實(shí)現(xiàn)jpeg Verilog代碼

    本站提供的fpga實(shí)現(xiàn)jpeg Verilog代碼資料,希望能夠幫你的學(xué)習(xí)。
    發(fā)表于 05-27 15:09 ?200次下載

    開(kāi)發(fā)環(huán)境搭建教程

    android Windows系統(tǒng)下開(kāi)發(fā)環(huán)境搭建
    發(fā)表于 03-22 17:42 ?0次下載

    RP4412 Android4.0 環(huán)境搭建和源碼編譯說(shuō)明_v1

    RP4412 Android4.0 環(huán)境搭建和源碼編譯說(shuō)明。
    發(fā)表于 05-04 16:04 ?0次下載

    測(cè)試環(huán)境搭建和維護(hù)_軟硬件測(cè)試環(huán)境

     測(cè)試環(huán)境搭建,每個(gè)公司都有不一樣的流程和方法。一種是運(yùn)維或者開(kāi)發(fā)負(fù)責(zé)搭建和維護(hù),另一種是測(cè)試人員進(jìn)行搭建和維護(hù)。大部分復(fù)雜的測(cè)試
    的頭像 發(fā)表于 01-31 18:30 ?6880次閱讀
    測(cè)試<b class='flag-5'>環(huán)境</b>的<b class='flag-5'>搭建和</b>維護(hù)_軟硬件測(cè)試<b class='flag-5'>環(huán)境</b>

    php開(kāi)發(fā)環(huán)境搭建和使用

    本文主要介紹的是php開(kāi)發(fā)環(huán)境搭建和使用。apache在默認(rèn)情況下不會(huì)處理php頁(yè)面,Apache處理php頁(yè)面的步驟:即:php開(kāi)發(fā)環(huán)境
    的頭像 發(fā)表于 02-01 15:26 ?3485次閱讀
    php<b class='flag-5'>開(kāi)發(fā)</b><b class='flag-5'>環(huán)境</b>的<b class='flag-5'>搭建和</b>使用

    一文詳解SAM4L8開(kāi)發(fā)環(huán)境搭建和使用

    本文主要介紹SAM4L8開(kāi)發(fā)環(huán)境搭建和使用,具體的跟隨小編來(lái)詳細(xì)的了解一下。
    的頭像 發(fā)表于 06-18 05:41 ?2777次閱讀
    一文詳解SAM4L8<b class='flag-5'>開(kāi)發(fā)</b><b class='flag-5'>環(huán)境</b>的<b class='flag-5'>搭建和</b>使用

    Atmel Studio 6.2開(kāi)發(fā)環(huán)境搭建和使用

    本篇搭建和使用的是Atmel Studio 6.2開(kāi)發(fā)環(huán)境。Atmel Studio 6.2中也給出了這個(gè)發(fā)板的示例程序,本篇文章就一步一步的通過(guò)下載和搭建
    的頭像 發(fā)表于 06-18 07:14 ?1.9w次閱讀
    Atmel Studio 6.2<b class='flag-5'>開(kāi)發(fā)</b><b class='flag-5'>環(huán)境</b>的<b class='flag-5'>搭建和</b>使用

    如何搭建鴻蒙開(kāi)發(fā)環(huán)境

    開(kāi)發(fā)某一個(gè)平臺(tái)的程序,那么首先要搭建出本地開(kāi)發(fā)環(huán)境,那么如何搭建鴻蒙開(kāi)發(fā)
    的頭像 發(fā)表于 02-24 11:25 ?3837次閱讀
    如何<b class='flag-5'>搭建</b>鴻蒙<b class='flag-5'>開(kāi)發(fā)</b><b class='flag-5'>環(huán)境</b>

    FPGA設(shè)計(jì)中DAC控制的Verilog實(shí)現(xiàn)

    FPGA設(shè)計(jì)中DAC控制的Verilog實(shí)現(xiàn)(單片機(jī)電源維修)-該文檔為FPGA設(shè)計(jì)中DAC控制的Verilog
    發(fā)表于 07-26 12:18 ?18次下載
    <b class='flag-5'>FPGA</b>設(shè)計(jì)中DAC控制的<b class='flag-5'>Verilog</b><b class='flag-5'>實(shí)現(xiàn)</b>

    Digispark開(kāi)發(fā)環(huán)境搭建

    Digispark開(kāi)發(fā)環(huán)境搭建
    發(fā)表于 11-15 20:51 ?16次下載
    Digispark<b class='flag-5'>開(kāi)發(fā)</b><b class='flag-5'>環(huán)境</b><b class='flag-5'>搭建</b>

    STM32 搭建開(kāi)發(fā)環(huán)境

    STM32 搭建開(kāi)發(fā)環(huán)境
    發(fā)表于 12-08 14:36 ?20次下載
    STM32 <b class='flag-5'>搭建</b><b class='flag-5'>開(kāi)發(fā)</b><b class='flag-5'>環(huán)境</b>

    FPGA開(kāi)發(fā)環(huán)境搭建和verilog代碼實(shí)現(xiàn)

    FPGA需要良好的數(shù)電模電基礎(chǔ),verilog需要良好C語(yǔ)言基礎(chǔ)。
    發(fā)表于 05-22 15:04 ?863次閱讀
    <b class='flag-5'>FPGA</b><b class='flag-5'>開(kāi)發(fā)</b><b class='flag-5'>環(huán)境</b>的<b class='flag-5'>搭建和</b><b class='flag-5'>verilog</b><b class='flag-5'>代碼</b>的<b class='flag-5'>實(shí)現(xiàn)</b>

    Verilog 測(cè)試平臺(tái)設(shè)計(jì)方法 Verilog FPGA開(kāi)發(fā)指南

    Verilog測(cè)試平臺(tái)設(shè)計(jì)方法是Verilog FPGA開(kāi)發(fā)中的重要環(huán)節(jié),它用于驗(yàn)證Verilog設(shè)計(jì)的正確性和性能。以下是一個(gè)詳細(xì)的
    的頭像 發(fā)表于 12-17 09:50 ?383次閱讀
    主站蜘蛛池模板: 国产精一品亚洲二区在线播放 | 欧美一区二区三区激情视频 | 美女胸禁止18以下看 | 婷婷亚洲五月色综合久久 | 国产网红主播精品福利大秀专区 | 伊人香蕉在线播放视频免费 | 精品国产乱码久久久久久免费 | 国产精品-区区久久久狼 | 麻美ゆま夫の目の前で犯 | 女的把腿张开男的往里面插 | 精品亚洲AV无码蜜芽麻豆 | 日韩hd高清xxxⅹ | 欧洲人交xxx69| 亚洲VA欧美VA天堂V国产综合 | 亚洲乱码国产一区三区 | 国产-第1页-浮力影院 | 97精品国偷拍自产在线 | 在线国内自拍精品视频 | 中文字幕在线观看网址 | 精品一品国产午夜福利视频 | BL文库好大粗黑强强肉NP | 亚洲精品无码AV中文字幕蜜桃 | 人人射人人插 | 欧美日本韩国一二区视频 | 亚洲国产中文在线视频免费 | 亚洲欧美日本久久综合网站 | 男人的天堂MV在线视频免费观看 | 狼群影院视频在线观看WWW | 大胸美女裸身色诱网站 | 国产精品午夜小视频观看 | 亚洲精品第一综合99久久 | 国产精品婷婷久青青原 | 韩国污动漫无遮掩无删减电脑版 | 野花视频在线观看免费最新动漫 | 伊人色啪啪天天综合婷婷 | brazzers情欲狂欢 | 日本久久精品毛片一区随边看 | 久久AV国产麻豆HD真实乱 | 紧致肉肉高h | 国产成人高清精品免费5388密 | 两个客户一起吃我的奶 |