chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

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

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

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

簡(jiǎn)單介紹一下時(shí)序和組合邏輯的一些知識(shí)

OpenFPGA ? 來(lái)源:OpenFPGA ? 作者:碎碎思 ? 2022-09-16 09:00 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

從這一題開(kāi)始我們將進(jìn)行過(guò)程塊的學(xué)習(xí),也就是時(shí)序和組合邏輯的一些知識(shí),下面簡(jiǎn)單介紹一下這方面知識(shí):

由于數(shù)字電路是由用導(dǎo)線連接的邏輯門組成的,因此任何電路都可以表示為module和assign語(yǔ)句的某種組合。然而,有時(shí)這并不是描述電路的最方便的方式。過(guò)程塊(比如always塊)提供了一種用于替代assign語(yǔ)句描述電路的方法。

對(duì)于可綜合硬件,有兩種類型的 always :

組合邏輯:always@(*)
時(shí)序邏輯:always@(posedgeclk)

組合always塊相當(dāng)于assign語(yǔ)句,因此組合電路存在兩種表達(dá)方法。選擇使用哪個(gè)主要是哪個(gè)語(yǔ)法更方便的問(wèn)題。程序塊內(nèi)部代碼的語(yǔ)法與外部代碼不同。程序塊具有更豐富的語(yǔ)句集(例如,if-then、case),不能包含連續(xù)賦值,但是卻引入了許多新的非直觀的出錯(cuò)方式。 (程序連續(xù)賦值確實(shí)存在,但與連續(xù)賦值有些不同,并且不可綜合。)

例如,assign和組合always塊描述相同的電路。兩者都創(chuàng)建了相同的組合邏輯塊。每當(dāng)任何輸入(右側(cè))更改值時(shí),兩者都會(huì)重新計(jì)算輸出。

assignout1=a&b|c^d;
always@(*)out2=a&b|c^d;

75b60436-3557-11ed-ba43-dac502259ad0.png


對(duì)于組合always塊,敏感變量列表總是使用(*)。如果把所有的輸入都列出來(lái)也是可以的,但容易出錯(cuò)的(可能少列出了一個(gè)),并且在硬件綜合時(shí)會(huì)忽略您少列了一個(gè),仍按原電路綜合。 但仿真器將會(huì)按少列一個(gè)來(lái)仿真,這導(dǎo)致了仿真與硬件不匹配。(在SystemVerilog中,使用always_comb)

關(guān)于 wire 與 reg 的注意事項(xiàng):assign 語(yǔ)句的左側(cè)必須是net類型(例如,wire),而過(guò)程賦值(在 always 塊中)的左側(cè)必須是變量類型(例如,reg)。這些類型(wire vs. reg)與合成的硬件無(wú)關(guān),只是 Verilog 用作硬件模擬語(yǔ)言時(shí)留下的語(yǔ)法。

題目說(shuō)明

使用 assign 語(yǔ)句和組合 always 塊構(gòu)建 AND 門。

75b60436-3557-11ed-ba43-dac502259ad0.png

模塊端口聲明

//synthesisverilog_input_versionverilog_2001
moduletop_module(
inputa,
inputb,
outputwireout_assign,
outputregout_alwaysblock
);

題目解析

這個(gè)題目重點(diǎn)是使用assign和always兩種方式描述一個(gè)AND門,整體難度不大。

moduletop_module(
inputlogica,
inputlogicb,
outputwirelogicout_assign,
outputvarlogicout_alwaysblock
);

assignout_assign=a&b;

always_comb
begin
out_alwaysblock=a&b;
end

endmodule

always_comb程序有很多好處,其中之一便是能自動(dòng)推斷出完整的敏感列表。該列表是完全完整的,避免了@*推斷不完整敏感列表的極端情況。

769a6022-3557-11ed-ba43-dac502259ad0.png

點(diǎn)擊Submit,等待一會(huì)就能看到下圖結(jié)果:

76e39b84-3557-11ed-ba43-dac502259ad0.png

注意圖中的Ref是參考波形,Yours是你的代碼生成的波形,網(wǎng)站會(huì)對(duì)比這兩個(gè)波形,一旦這兩者不匹配,仿真結(jié)果會(huì)變紅。

這一題就結(jié)束了。

Problem 29-Alwaysblock2

阻塞性賦值和非阻塞性賦值

在Verilog中有以下三種賦值方法:

連續(xù)賦值(assign x=y;):不能在過(guò)程塊內(nèi)使用;

過(guò)程阻塞性賦值(x=y;):只能在過(guò)程塊中使用;

過(guò)程費(fèi)阻塞性復(fù)制(x<=y):只能在過(guò)程塊內(nèi)使用。

在組合always塊中,使用阻塞性賦值。在時(shí)序always塊中,使用非阻塞性賦值。具體為什么對(duì)設(shè)計(jì)硬件用處不大,還需要理解Verilog模擬器如何跟蹤事件(的確是這樣,記住組合用阻塞性,時(shí)序用非阻塞性就可以了)。不遵循此規(guī)則會(huì)導(dǎo)致極難發(fā)現(xiàn)非確定性錯(cuò)誤,并且在仿真和綜合出來(lái)的硬件之間存在差異。

題目說(shuō)明

以三種方式構(gòu)建異或門,使用assign語(yǔ)句、組合always塊和時(shí)序always塊。請(qǐng)注意,時(shí)序always塊產(chǎn)生的電路與其他兩個(gè)不同:有一個(gè)觸發(fā)器,因此輸出被延遲。

7727b8b4-3557-11ed-ba43-dac502259ad0.png

模塊端口聲明

//synthesisverilog_input_versionverilog_2001
moduletop_module(
inputclk,
inputa,
inputb,
outputwireout_assign,
outputregout_always_comb,
outputregout_always_ff);

題目解析

這道題難度不大,主要時(shí)區(qū)分三種方式。

moduletop_module(
inputlogicclk,
inputlogica,
inputlogicb,
outputwirelogicout_assign,
outputlogicout_always_comb,
outputlogicout_always_ff);

assignout_assign=a^b;

always_combbegin
out_always_comb=a^b;
end

always_ff@(posedgeclk)begin
out_always_ff<=?a?^?b;
????end

endmodule



775f175a-3557-11ed-ba43-dac502259ad0.png

點(diǎn)擊Submit,等待一會(huì)就能看到下圖結(jié)果:

778b72be-3557-11ed-ba43-dac502259ad0.png

從仿真的波形圖可以看出,out_always_ff比其他兩個(gè)輸出延遲了一個(gè)時(shí)鐘周期,這就是非阻塞性賦值帶來(lái)的。

注意圖中的Ref是參考波形,Yours是你的代碼生成的波形,網(wǎng)站會(huì)對(duì)比這兩個(gè)波形,一旦這兩者不匹配,仿真結(jié)果會(huì)變紅。

這一題就結(jié)束了。

Problem 30-Always if

if語(yǔ)句通常創(chuàng)建一個(gè)2 對(duì) 1 多路復(fù)用器,如果條件為真則選擇一個(gè)輸入,如果條件為假則選擇另一個(gè)輸入。

下面給出了一個(gè)基本的if語(yǔ)句和其綜合出來(lái)的電路。

always@(*)begin
if(condition)begin
out=x;
end
elsebegin
out=y;
end
end

這與下面使用條件運(yùn)算符連續(xù)賦值的語(yǔ)句是等價(jià)的:

assignout=(condition)?x:y;

但是,過(guò)程if語(yǔ)句使用不當(dāng)可能會(huì)引入新的錯(cuò)誤,只有out在所有的條件下都被賦值才會(huì)生成正確的組合電路。

題目說(shuō)明

構(gòu)建一個(gè)在a和b之間進(jìn)行選擇的 2 對(duì) 1 多路復(fù)用器。如果sel_b1和sel_b2都為真,則選擇b 。其他情況輸出a。請(qǐng)使用兩種方法作答,一次使用assign賦值,一次使用if語(yǔ)句。

79ce78aa-3557-11ed-ba43-dac502259ad0.png

模塊端口聲明

moduletop_module(
inputa,
inputb,
inputsel_b1,
inputsel_b2,
outputwireout_assign,
outputregout_always);

題目解析

本題考查的是if語(yǔ)句的簡(jiǎn)單用法,使用條件運(yùn)算符作為對(duì)比,入門練習(xí)題。

moduletop_module(
inputlogica,b,
inputsel_b1,sel_b2,
outputwirelogicout_assign,
outputlogicout_always);

assignout_assign=(sel_b1&sel_b2)?b:a;

always_comb
begin
if(sel_b1&sel_b2)
out_always=b;
else
out_always=a;
end

endmodule

7a00b9fa-3557-11ed-ba43-dac502259ad0.png

點(diǎn)擊Submit,等待一會(huì)就能看到下圖結(jié)果:

7a81dcf6-3557-11ed-ba43-dac502259ad0.png

注意圖中的Ref是參考波形,Yours是你的代碼生成的波形,網(wǎng)站會(huì)對(duì)比這兩個(gè)波形,一旦這兩者不匹配,仿真結(jié)果會(huì)變紅。

這一題就結(jié)束了。

Problem 31-Always_if2

常見(jiàn)的錯(cuò)誤來(lái)源:如何避免引入鎖存器

在設(shè)計(jì)電路時(shí),必須首先具體考慮電路:

1、我想實(shí)現(xiàn)一個(gè)邏輯門;

2、我想實(shí)現(xiàn)一個(gè)具有輸入并產(chǎn)生輸出的組合邏輯塊;

3、我想實(shí)現(xiàn)一組組合邏輯,緊接著一組觸發(fā)器。

不要上來(lái)就寫代碼,這樣往往與你想象的電路相差很遠(yuǎn)。

7aea6636-3557-11ed-ba43-dac502259ad0.png

if(cpu_overheated)thenshut_off_computer=1;
if(~arrived)thenkeep_driving=~gas_tank_empty;

除了你指定的情況以外,會(huì)發(fā)生些什么,答案是什么也不會(huì)發(fā)生,輸出保持不變。而這往往就導(dǎo)致了電路的錯(cuò)誤,所以說(shuō)語(yǔ)法正確的代碼不一定能產(chǎn)生合理的電路(組合邏輯+觸發(fā)器)。

輸出保持不變,這就意味著電路需要記住當(dāng)前狀態(tài),從而產(chǎn)生鎖存器。組合邏輯(比如邏輯門)不能記住任何狀態(tài)。

題目說(shuō)明

以下代碼包含創(chuàng)建鎖存器的不正確行為。修復(fù)錯(cuò)誤~

always@(*)begin
if(cpu_overheated)
shut_off_computer=1;
end

always@(*)begin
if(~arrived)
keep_driving=~gas_tank_empty;
end
7aea6636-3557-11ed-ba43-dac502259ad0.png?

模塊端口聲明

moduletop_module(
inputcpu_overheated,
outputregshut_off_computer,
inputarrived,
inputgas_tank_empty,
outputregkeep_driving);

題目解析

這個(gè)題目的核心是修復(fù)由于各種原因在組合電路中引入的鎖存器代碼,理解了前面說(shuō)的產(chǎn)生鎖存器的原因,看這個(gè)代碼還是比較好找出問(wèn)題的,盡量補(bǔ)全if語(yǔ)句的條件。

moduletop_module(
inputlogiccpu_overheated,
outputlogicshut_off_computer,
inputlogicarrived,
inputlogicgas_tank_empty,
outputlogickeep_driving
);

always_combbegin
if(cpu_overheated)
shut_off_computer=1;
else
shut_off_computer=0;
end

always_combbegin
if(~arrived)
keep_driving=~gas_tank_empty;
else
keep_driving=0;
end

endmodule


7b597b98-3557-11ed-ba43-dac502259ad0.png

點(diǎn)擊Submit,等待一會(huì)就能看到下圖結(jié)果:

7b8f3aa8-3557-11ed-ba43-dac502259ad0.png

注意圖中的Ref是參考波形,Yours是你的代碼生成的波形,網(wǎng)站會(huì)對(duì)比這兩個(gè)波形,一旦這兩者不匹配,仿真結(jié)果會(huì)變紅。

這一題就結(jié)束了。

總結(jié)

今天的幾道題就結(jié)束了,整體難度不大,逐漸的在學(xué)習(xí)新知識(shí)~




審核編輯:劉清

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(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)投訴
  • 仿真器
    +關(guān)注

    關(guān)注

    14

    文章

    1048

    瀏覽量

    86772
  • Verilog
    +關(guān)注

    關(guān)注

    30

    文章

    1370

    瀏覽量

    114145
  • 數(shù)字電路
    +關(guān)注

    關(guān)注

    193

    文章

    1648

    瀏覽量

    83039
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    關(guān)于六類網(wǎng)線一些問(wèn)題的解答

    今天我們就圍繞網(wǎng)友一些常見(jiàn)的關(guān)于六類網(wǎng)線的問(wèn)題進(jìn)行一下匯總式解答: 問(wèn) 六類網(wǎng)線可以當(dāng)電源用嗎? 答 六類網(wǎng)線并不是設(shè)計(jì)用于傳輸電力的電纜,因此般不建議將其用于電源傳輸。 盡管六類網(wǎng)線的線芯可以
    的頭像 發(fā)表于 12-09 11:13 ?69次閱讀

    貼片電容精度J±5%的一些詳細(xì)知識(shí)

    貼片電容精度J±5%表示電容的實(shí)際值與標(biāo)稱值之間的偏差范圍在±5%以內(nèi) ,以下是關(guān)于貼片電容精度J±5%的一些詳細(xì)知識(shí)、精度等級(jí)含義 J±5% :字母“J”在貼片電容的標(biāo)識(shí)中通常表示標(biāo)稱精度
    的頭像 發(fā)表于 11-20 14:38 ?158次閱讀
    貼片電容精度J±5%的<b class='flag-5'>一些</b>詳細(xì)<b class='flag-5'>知識(shí)</b>

    vivado時(shí)序分析相關(guān)經(jīng)驗(yàn)

    vivado綜合后時(shí)序為例主要是有兩種原因?qū)е拢?1,太多的邏輯級(jí) 2,太高的扇出 分析時(shí)序違例的具體位置以及原因可以使用一些tcl命令方便快速得到路徑信息
    發(fā)表于 10-30 06:58

    蜂鳥(niǎo)E203的浮點(diǎn)指令集F的一些實(shí)現(xiàn)細(xì)節(jié)

    降低功耗,因此如果多個(gè)IP核運(yùn)算周期設(shè)計(jì)的不致,如乘法兩個(gè)周期,加法個(gè)周期時(shí),注意需要讓乘法模塊的clken多延時(shí)個(gè)周期。而為了節(jié)省片上面積且改善時(shí)序,我們參考了
    發(fā)表于 10-24 08:57

    Vivado浮點(diǎn)數(shù)IP核的一些設(shè)置注意點(diǎn)

    : 總結(jié) 本文介紹的內(nèi)容是為了完成基礎(chǔ)功能:對(duì)蜂鳥(niǎo)E203 RISC-V內(nèi)核的微架構(gòu)實(shí)現(xiàn)進(jìn)行定優(yōu)化,在添加F拓展的過(guò)程中的一些記錄。
    發(fā)表于 10-24 06:25

    上電時(shí)GPIO控制的LED偶爾詭異地亮了一下

    快速上下電時(shí),主控1.8V的GPIO控制的LED會(huì)亮一下。放久點(diǎn)再上電則不會(huì)異常亮。仔細(xì)排查發(fā)現(xiàn)1.8V比0.9V先上電,再深入排查發(fā)現(xiàn)快速上下電時(shí)1.8V電源的RC延時(shí)使能失效,上電時(shí)序異常,主控工作異常。
    的頭像 發(fā)表于 06-18 14:16 ?620次閱讀
    上電時(shí)GPIO控制的LED偶爾詭異地亮了<b class='flag-5'>一下</b>

    數(shù)字IC設(shè)計(jì):方法、技巧與實(shí)踐

    了如何在RTL設(shè)計(jì)中考慮綜合和后端設(shè)計(jì)的問(wèn)題;然后,給出了一些最常見(jiàn)的設(shè)計(jì)實(shí)例和代碼;最后,介紹了仿真的相關(guān)知識(shí)。第5章為邏輯綜合和相關(guān)技術(shù)。主要
    發(fā)表于 05-28 16:06

    極海APM32F407 uc/os3學(xué)習(xí)筆記之任務(wù)管理介紹

    最近了解了uc/os3這個(gè)操作系統(tǒng),上篇介紹了uc/os3如何正確移植到APM32F407開(kāi)發(fā)板上,根據(jù)我最近學(xué)到的一些知識(shí),這篇文章主要介紹一下
    的頭像 發(fā)表于 05-24 14:37 ?799次閱讀
    極海APM32F407 uc/os3學(xué)習(xí)筆記之任務(wù)管理<b class='flag-5'>介紹</b>

    介紹一下三相組合式過(guò)電壓保護(hù)器的特點(diǎn)

    介紹一下三相組合式過(guò)電壓保護(hù)器的特點(diǎn) 1、三相組合式過(guò)電壓保護(hù)器采用氧化鋅非線性電阻和放電間隙相組合的結(jié)構(gòu),使二者互為保護(hù)。放電間隙使氧化鋅
    的頭像 發(fā)表于 04-07 11:24 ?536次閱讀

    樹(shù)莓派在自動(dòng)化控制項(xiàng)目中的一些潛在應(yīng)用

    自動(dòng)化控制項(xiàng)目中的一些潛在應(yīng)用。之前,我們已經(jīng)為Arduino平臺(tái)探討了相同的話題。我們確定Arduino是個(gè)出色的教育工具,但由于一些限制,它無(wú)法在工業(yè)環(huán)境中完全
    的頭像 發(fā)表于 03-25 09:45 ?479次閱讀
    樹(shù)莓派在自動(dòng)化控制項(xiàng)目中的<b class='flag-5'>一些</b>潛在應(yīng)用

    收藏的一些庫(kù)存,直流無(wú)刷技術(shù)+源碼+論文(建議打包)

    這也是我網(wǎng)絡(luò)上淘過(guò)來(lái)收藏的一些資料,免費(fèi)跟大家起分享一下,建議下載哦,收藏不易
    發(fā)表于 03-17 20:17

    map指令簡(jiǎn)單介紹

    當(dāng)然這里寫的都是官方文檔是已經(jīng)寫過(guò)的,我簡(jiǎn)單一下哈。
    的頭像 發(fā)表于 02-13 09:54 ?680次閱讀

    為什么你的串口總是丟一些特殊字符?

    導(dǎo)讀在嵌入式開(kāi)發(fā)和物聯(lián)網(wǎng)應(yīng)用中,Linux系統(tǒng)的串口通信至關(guān)重要。本文將簡(jiǎn)單介紹Linux串口設(shè)備的命名規(guī)則和termios結(jié)構(gòu)體,并解析終端的三種工作模式,幫助開(kāi)發(fā)者更好地掌握Linux串口編程
    的頭像 發(fā)表于 02-06 13:26 ?622次閱讀
    為什么你的串口總是丟<b class='flag-5'>一些</b>特殊字符?

    誰(shuí)能詳細(xì)介紹一下track-and-hold

    在運(yùn)放和ADC芯片的數(shù)據(jù)手冊(cè)中經(jīng)??吹絫rack-and-hold,誰(shuí)能詳細(xì)介紹一下track-and-hold?
    發(fā)表于 01-20 09:10

    “碰一下”支付背后的4G技術(shù)

    不知道你是否有留意,近期,在線下支付場(chǎng)景中,多了個(gè)支付寶“碰一下”支付的設(shè)備,只需要“解鎖手機(jī)—碰一下—確認(rèn)”即可完成支付,對(duì)比打開(kāi)付款碼支付,步驟確實(shí)更加簡(jiǎn)潔。
    的頭像 發(fā)表于 01-03 16:27 ?5011次閱讀