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

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

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

寫出一個(gè)包含觸發(fā)器和多路選擇器的子模塊

OpenFPGA ? 來源:OpenFPGA ? 作者:碎碎思 ? 2022-11-17 09:37 ? 次閱讀

題目說明

考慮下面的時(shí)序電路:

4ef54598-6610-11ed-8abf-dac502259ad0.png

圖片來自HDLBits

我們用3個(gè)包含觸發(fā)器和多路選擇器的子模塊來實(shí)現(xiàn)圖中電路。題目要求我們寫出包含一個(gè)觸發(fā)器和一個(gè)多路選擇器的子模塊。

模塊端口聲明

moduletop_module(
inputclk,
inputL,
inputr_in,
inputq_in,
outputregQ);

題目解析

題目只要求我們寫出包含一個(gè)觸發(fā)器和一個(gè)多路選擇器的子模塊,所以不需要看整張圖片,看圖片前部分即可。

4f02981a-6610-11ed-8abf-dac502259ad0.png

moduletop_module(
inputlogicclk,
inputlogicL,
inputlogicr_in,
inputlogicq_in,
outputlogicQ);

always_ff@(posedgeclk)begin
if(L)Q<=?r_in?;
????????else??Q?<=?q_in?;
????end
endmodule


4f22d63e-6610-11ed-8abf-dac502259ad0.png

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

4f458512-6610-11ed-8abf-dac502259ad0.png

注意圖中無參考波形。

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

Problem 91-2014_q4a

題目說明

考慮如下所示 的n位移位寄存器電路:

4f81b2da-6610-11ed-8abf-dac502259ad0.png

圖片來自HDLBits

如上圖所示,還是實(shí)現(xiàn)包含選擇器和觸發(fā)器的部分。

模塊端口聲明

moduletop_module(
inputclk,
inputw,R,E,L,
outputQ
);

題目解析

還是實(shí)現(xiàn)包含選擇器和觸發(fā)器的部分。

moduletop_module(
inputlogicclk,
inputlogicw,R,E,L,
outputlogicQ
);
always_ff@(posedgeclk)begin
casex({E,L})
2'b00:Q<=?Q?;
????????????2'bx1:?Q?<=?R?;
????????????2'b10:?Q?<=?w?;
????????endcase
????end

endmodule

4f9c4776-6610-11ed-8abf-dac502259ad0.png

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

4fbde52a-6610-11ed-8abf-dac502259ad0.png

注意圖中無參考波形。

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

Problem 92-ece241_2014_q4

題目說明

如下圖所示的狀態(tài)機(jī),假設(shè)D觸發(fā)器在狀態(tài)機(jī)啟動(dòng)之前初始化為0,實(shí)現(xiàn)該電路:

4fd9a404-6610-11ed-8abf-dac502259ad0.png 圖片來自HDLBits

模塊端口聲明

moduletop_module(
inputclk,
inputx,
outputz
);

題目解析

首先先寫出組合電路中邏輯,然后再寫時(shí)序電路邏輯即可。

moduletop_module(
inputlogicclk,
inputlogicx,
outputlogicz
);
varlogicQ1,Q2,Q3,D1,D2,D3;

always_combbegin
D1=x^Q1;
D2=x&~Q2;
D3=x|~Q3;

z=~(Q1|Q2|Q3);
end

always_ff@(posedgeclk)begin
Q1<=?D1?;
????????Q2?<=?D2?;
????????Q3?<=?D3?;
????end

endmodule


4feecc08-6610-11ed-8abf-dac502259ad0.png

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

500a02a2-6610-11ed-8abf-dac502259ad0.png

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

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

Problem 93-ece241_2013_q7

題目說明

JK 觸發(fā)器真值表如下。實(shí)現(xiàn)一個(gè) JK 觸發(fā)器。注意:Qold 是正時(shí)鐘沿之前 D 觸發(fā)器的輸出。

502c553c-6610-11ed-8abf-dac502259ad0.png

圖片來自HDLBits

模塊端口聲明

moduletop_module(
inputclk,
inputj,
inputk,
outputQ);

題目解析

這道題目要求是根據(jù)真值表寫出邏輯表達(dá)式,當(dāng)然也可以直接根據(jù)特性方程寫出邏輯。

JK觸發(fā)器的特性方程如下:

503cc020-6610-11ed-8abf-dac502259ad0.png

505ebae0-6610-11ed-8abf-dac502259ad0.png

moduletop_module(
inputlogicclk,
inputlogicj,
inputlogick,
outputlogicQ);

varlogicD;
always_combbegin
case({j,k})
2'b00:D=Q;
2'b01:D='0;
2'b11:D=~Q;
2'b10:D='1;
endcase
end

always_ff@(posedgeclk)begin
Q<=?D;
????end
endmodule


506d2be8-6610-11ed-8abf-dac502259ad0.png

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

508d1336-6610-11ed-8abf-dac502259ad0.png

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

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

Problem 94-Edgedetect

題目說明

對(duì)于 8 位向量中的每一位,檢測(cè)輸入信號(hào)何時(shí)從一個(gè)時(shí)鐘周期的 0 變?yōu)橄乱粋€(gè)時(shí)鐘周期的 1(類似于上升沿檢測(cè))。輸出位應(yīng)在發(fā)生 0 到 1 轉(zhuǎn)換后的周期內(nèi)。

下圖給我們展示了輸入in[1]和輸出pedge[1]的時(shí)序關(guān)系圖:

50b4e208-6610-11ed-8abf-dac502259ad0.png

圖片來自HDLBits

模塊端口聲明

moduletop_module(
inputclk,
input[7:0]in,
output[7:0]pedge
);

題目解析

查看:

https://blog.csdn.net/qq_31799983/article/details/81544707

moduletop_module(
inputlogicclk,
inputlogic[7:0]in,
outputlogic[7:0]pedge
);
wirelogic[7:0]in_reg_n,in_reg_l;

always_ff@(posedgeclk)begin
in_reg_n<=?in?;
????????in_reg_l?<=?in_reg_n?;
????end
????
????assign?pedge?=?in_reg_n&~in_reg_l?;


endmodule

50c0511a-6610-11ed-8abf-dac502259ad0.png

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

50df7432-6610-11ed-8abf-dac502259ad0.png

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

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

Problem 95-Edgedetect2

題目說明

在一個(gè)8bit的變量中,從一個(gè)周期到另一個(gè)周期期間,檢測(cè)輸入信號(hào)變化。即上升沿變化或下降沿變化。輸出應(yīng)在0變?yōu)?后產(chǎn)生。

如下圖所示為輸入與輸出的時(shí)序關(guān)系

510db1a8-6610-11ed-8abf-dac502259ad0.png

圖片來自HDLBits

模塊端口聲明

moduletop_module(
inputclk,
input[7:0]in,
output[7:0]anyedge
);

題目解析

雙邊沿檢測(cè),在上一題基礎(chǔ)上加上下降沿檢測(cè)即可。

moduletop_module(
inputlogicclk,
inputlogic[7:0]in,
outputlogic[7:0]anyedge
);

wirelogic[7:0]in_reg,edge_flag;

always_ff@(posedgeclk)begin
in_reg<=?in?;
????end
????
????assign?edge_flag?=?in&~in_reg?|?~in&in_reg?;
????
????always_ff@(posedge?clk)?begin
????????anyedge?<=?edge_flag?;
????end
endmodule



512aee26-6610-11ed-8abf-dac502259ad0.png

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

514952e4-6610-11ed-8abf-dac502259ad0.png

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

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

Problem 96-Edgecapture

題目說明

對(duì)于 32 位向量中的每一位,在輸入信號(hào)從一個(gè)時(shí)鐘周期的 1 變?yōu)橄乱粋€(gè)時(shí)鐘周期的 0 時(shí)進(jìn)行捕捉?!安东@”表示輸出將保持為 1,直到寄存器復(fù)位(同步復(fù)位)。

每個(gè)輸出位的行為類似于 SR 觸發(fā)器:輸出位應(yīng)在 1 到 0 轉(zhuǎn)換發(fā)生后的周期設(shè)置(為 1)。當(dāng)復(fù)位為高電平時(shí),輸出位應(yīng)在正時(shí)鐘沿復(fù)位(為 0)。

如果上述兩個(gè)事件同時(shí)發(fā)生,則復(fù)位優(yōu)先。在下面示例波形的最后 4 個(gè)周期中,“reset”事件比“set”事件早一個(gè)周期發(fā)生,因此這里不存在沖突。

在下面的示例波形中,為清楚起見,reset、in[1] 和 out[1] 被突出顯示。

516fe22e-6610-11ed-8abf-dac502259ad0.png

圖片來自HDLBits

模塊端口聲明

moduletop_module(
inputclk,
inputreset,
input[31:0]in,
output[31:0]out
);

題目解析

moduletop_module(
inputlogicclk,
inputlogicreset,
inputlogic[31:0]in,
outputlogic[31:0]out
);

varlogic[31:0]capture,in_reg;

always_ff@(posedgeclk)begin
if(reset)out<=?'0;
????????else
??????????????????out?<=?capture?;
????end
????
????always_ff@(posedge?clk)?begin
???????????in_reg?<=?in?;
????end
????
????assign?capture?=?~in?&?in_reg?|?out;
endmodule

518bbcd8-6610-11ed-8abf-dac502259ad0.png

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

51af2560-6610-11ed-8abf-dac502259ad0.png

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

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

Problem 97-Dualedge

題目說明

熟悉在時(shí)鐘上升沿或時(shí)鐘下降沿觸發(fā)的觸發(fā)器。在時(shí)鐘的兩個(gè)邊沿觸發(fā)雙邊觸發(fā)觸發(fā)器。

但是,FPGA 沒有雙邊觸發(fā)觸發(fā)器,并且不接受 @(posedge clk or negedge clk)作為合法的敏感度列表。

構(gòu)建一個(gè)功能類似于雙邊觸發(fā)觸發(fā)器的電路:

(注意:不一定完全等效:觸發(fā)器的輸出沒有毛刺,但模擬這種行為的更大組合電路可能。)

51d7b3fe-6610-11ed-8abf-dac502259ad0.png

圖片來自HDLBits

模塊端口聲明

moduletop_module(
inputclk,
inputd,
outputq
);

題目解析

無法在 FPGA 上創(chuàng)建雙邊觸發(fā)觸發(fā)器。但是可以同時(shí)創(chuàng)建正沿觸發(fā)和負(fù)沿觸發(fā)觸發(fā)器。

moduletop_module(
inputlogicclk,
inputlogicd,
outputlogicq
);
varlogictemp1,temp2;
always_ff@(posedgeclk)begin
temp1<=?d^temp2?;
????end
????
????always_ff@(negedge?clk)?begin
????????temp2?<=?d^temp1?;
????end
????
????assign?q?=?temp1^temp2?;

endmodule

51e5fbee-6610-11ed-8abf-dac502259ad0.png

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

5208202a-6610-11ed-8abf-dac502259ad0.png

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

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

總結(jié)

今天的幾道題就結(jié)束了,對(duì)于理解觸發(fā)器的非常有幫助,而且難度稍微增加了,對(duì)于閱讀波形設(shè)計(jì)邏輯非常有幫助。





審核編輯:劉清

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

    關(guān)注

    1

    文章

    114

    瀏覽量

    21672
  • 觸發(fā)器
    +關(guān)注

    關(guān)注

    14

    文章

    1995

    瀏覽量

    61010
  • Verilog語言
    +關(guān)注

    關(guān)注

    0

    文章

    113

    瀏覽量

    8204
  • 多路選擇器
    +關(guān)注

    關(guān)注

    1

    文章

    22

    瀏覽量

    6507

原文標(biāo)題:HDLBits: 在線學(xué)習(xí) SystemVerilog(十五)-Problem 90-97(觸發(fā)器和鎖存器(2))

文章出處:【微信號(hào):Open_FPGA,微信公眾號(hào):OpenFPGA】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    文解析多路選擇器的工作原理及電路實(shí)現(xiàn)

    本文開始介紹了多路選擇器的概念和在FPGA中多路選擇器結(jié)構(gòu),其次介紹了多路選擇器工作原理與應(yīng)用,
    的頭像 發(fā)表于 04-27 08:46 ?5.9w次閱讀
    <b class='flag-5'>一</b>文解析<b class='flag-5'>多路</b><b class='flag-5'>選擇器</b>的工作原理及電路實(shí)現(xiàn)

    EDA四選一多路選擇器的設(shè)計(jì)

    多路選擇器(又稱為數(shù)據(jù)選擇器)①功能在選擇變量控制下,從多路輸入數(shù)據(jù)中選中某路數(shù)據(jù)送至輸出端。
    發(fā)表于 04-12 09:17

    基于FPGA的多路選擇器設(shè)計(jì)(附代碼)

    開關(guān)。 · 二選一多路選擇器 二選一多路選擇器的數(shù)據(jù)輸入有兩個(gè),分別為dataa和datab。為了能夠確定
    發(fā)表于 03-01 17:10

    多路優(yōu)先觸發(fā)器

    多路優(yōu)先觸發(fā)器
    發(fā)表于 04-13 10:15 ?751次閱讀
    <b class='flag-5'>多路</b>優(yōu)先<b class='flag-5'>觸發(fā)器</b>

    譯碼多路選擇器的使用( EDA 仿真) 實(shí)驗(yàn)

    譯碼多路選擇器的使用( EDA 仿真) 實(shí)驗(yàn) 、實(shí)驗(yàn)?zāi)康?. 掌握Multisim電子電路仿真軟件的使用,并能進(jìn)行
    發(fā)表于 02-06 14:11 ?6151次閱讀
    譯碼<b class='flag-5'>器</b>及<b class='flag-5'>多路</b><b class='flag-5'>選擇器</b>的使用( EDA 仿真) 實(shí)驗(yàn)

    施密特觸發(fā)器,施密特觸發(fā)器是什么意思

    施密特觸發(fā)器,施密特觸發(fā)器是什么意思 施密特觸發(fā)器也有兩個(gè)穩(wěn)定狀態(tài),但與觸發(fā)器不同的是,施
    發(fā)表于 03-08 14:14 ?1932次閱讀

    多路選擇器有哪些_多路選擇器分類介紹

    本文開始介紹了多路選擇器的分類與多路選擇器的4選1原理圖,其次介紹了多路選擇器的典型芯片,最后介
    的頭像 發(fā)表于 04-27 09:13 ?3.5w次閱讀
    <b class='flag-5'>多路</b><b class='flag-5'>選擇器</b>有哪些_<b class='flag-5'>多路</b><b class='flag-5'>選擇器</b>分類介紹

    4選1多路選擇器電路圖(四款多路選擇器電路)

    本文主要介紹了四款4選1多路選擇器電路圖。多路選擇器是數(shù)據(jù)選擇器的別稱。在多路數(shù)據(jù)傳送過程中,能
    發(fā)表于 04-27 09:37 ?14w次閱讀
    4選1<b class='flag-5'>多路</b><b class='flag-5'>選擇器</b>電路圖(四款<b class='flag-5'>多路</b><b class='flag-5'>選擇器</b>電路)

    設(shè)計(jì)個(gè)1位的二選一多路選擇器及其VHDL描述

    本文首先介紹了二選一多路選擇器真值表,其次介紹了1位二選一多路選擇器設(shè)計(jì)及其VHDL描述,最后介紹了它的邏輯表達(dá)式實(shí)現(xiàn)。
    的頭像 發(fā)表于 04-27 09:52 ?3.1w次閱讀
    設(shè)計(jì)<b class='flag-5'>一</b><b class='flag-5'>個(gè)</b>1位的二選<b class='flag-5'>一多路</b><b class='flag-5'>選擇器</b>及其VHDL描述

    eda四選一多路選擇器的設(shè)計(jì)

    本文開始對(duì)多路選擇器進(jìn)行了詳細(xì)介紹,其中包括了多路選擇器功能、典型芯片及應(yīng)用,另外還詳細(xì)介紹了eda四選一多路
    發(fā)表于 04-27 10:13 ?3.4w次閱讀
    eda四選<b class='flag-5'>一多路</b><b class='flag-5'>選擇器</b>的設(shè)計(jì)

    8選1多路選擇器電路圖(五款8選1多路選擇器電路)

    多路選擇器又稱數(shù)據(jù)選擇器。8選1數(shù)據(jù)選擇器(型號(hào)有74151、74LS151、74251、74LS152),下面就以74LS151為例子,介紹幾款電路圖。
    發(fā)表于 04-28 17:25 ?12.9w次閱讀
    8選1<b class='flag-5'>多路</b><b class='flag-5'>選擇器</b>電路圖(五款8選1<b class='flag-5'>多路</b><b class='flag-5'>選擇器</b>電路)

    Verilog HDL之多路選擇器設(shè)計(jì)

    在數(shù)字信號(hào)的傳輸過程中,有時(shí)需要從多路輸入數(shù)據(jù)中選出某路數(shù)據(jù),完成此功能的邏輯器件稱為數(shù)據(jù)選擇器,即所謂多路開關(guān),簡(jiǎn)稱MUX(Multiplexer)。2選1
    發(fā)表于 07-20 08:56 ?4536次閱讀
    Verilog HDL之<b class='flag-5'>多路</b><b class='flag-5'>選擇器</b>設(shè)計(jì)

    電平觸發(fā)器,脈沖觸發(fā)器和邊沿觸發(fā)器觸發(fā)因素是什么

    脈沖觸發(fā)器由兩個(gè)相同的電平觸發(fā)的SR觸發(fā)器組成,其中左SR觸發(fā)器成為主觸發(fā)器,右手側(cè)稱為從
    的頭像 發(fā)表于 02-11 10:56 ?9162次閱讀
    電平<b class='flag-5'>觸發(fā)器</b>,脈沖<b class='flag-5'>觸發(fā)器</b>和邊沿<b class='flag-5'>觸發(fā)器</b>的<b class='flag-5'>觸發(fā)</b>因素是什么

    基于FPGA的多路選擇器設(shè)計(jì)

    組合邏輯電路的輸出信號(hào)只與當(dāng)前時(shí)刻的輸入信號(hào)有關(guān),與其他時(shí)刻的輸入狀態(tài)無關(guān),無存儲(chǔ)電路或反饋電路。多路選擇器是在多路數(shù)據(jù)傳送過程中,根據(jù)需要選擇
    的頭像 發(fā)表于 05-12 12:47 ?1450次閱讀
    基于FPGA的<b class='flag-5'>多路</b><b class='flag-5'>選擇器</b>設(shè)計(jì)

    t觸發(fā)器和jk觸發(fā)器的區(qū)別和聯(lián)系

    穩(wěn)態(tài)觸發(fā)器,具有個(gè)觸發(fā)輸入(T輸入)和個(gè)時(shí)鐘輸入,以及
    的頭像 發(fā)表于 02-06 14:04 ?5615次閱讀