吴忠躺衫网络科技有限公司

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

寫出一個包含觸發器和多路選擇器的子模塊

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

題目說明

考慮下面的時序電路:

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

圖片來自HDLBits

我們用3個包含觸發器和多路選擇器的子模塊來實現圖中電路。題目要求我們寫出包含一個觸發器和一個多路選擇器的子模塊。

模塊端口聲明

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

題目解析

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

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

點擊Submit,等待一會就能看到下圖結果:

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

注意圖中無參考波形。

這一題就結束了。

Problem 91-2014_q4a

題目說明

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

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

圖片來自HDLBits

如上圖所示,還是實現包含選擇器和觸發器的部分。

模塊端口聲明

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

題目解析

還是實現包含選擇器和觸發器的部分。

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

點擊Submit,等待一會就能看到下圖結果:

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

注意圖中無參考波形。

這一題就結束了。

Problem 92-ece241_2014_q4

題目說明

如下圖所示的狀態機,假設D觸發器在狀態機啟動之前初始化為0,實現該電路:

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

模塊端口聲明

moduletop_module(
inputclk,
inputx,
outputz
);

題目解析

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

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

點擊Submit,等待一會就能看到下圖結果:

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

注意圖中的Ref是參考波形,Yours是你的代碼生成的波形,網站會對比這兩個波形,一旦這兩者不匹配,仿真結果會變紅。

這一題就結束了。

Problem 93-ece241_2013_q7

題目說明

JK 觸發器真值表如下。實現一個 JK 觸發器。注意:Qold 是正時鐘沿之前 D 觸發器的輸出。

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

圖片來自HDLBits

模塊端口聲明

moduletop_module(
inputclk,
inputj,
inputk,
outputQ);

題目解析

這道題目要求是根據真值表寫出邏輯表達式,當然也可以直接根據特性方程寫出邏輯。

JK觸發器的特性方程如下:

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

點擊Submit,等待一會就能看到下圖結果:

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

注意圖中的Ref是參考波形,Yours是你的代碼生成的波形,網站會對比這兩個波形,一旦這兩者不匹配,仿真結果會變紅。

這一題就結束了。

Problem 94-Edgedetect

題目說明

對于 8 位向量中的每一位,檢測輸入信號何時從一個時鐘周期的 0 變為下一個時鐘周期的 1(類似于上升沿檢測)。輸出位應在發生 0 到 1 轉換后的周期內。

下圖給我們展示了輸入in[1]和輸出pedge[1]的時序關系圖:

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

點擊Submit,等待一會就能看到下圖結果:

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

注意圖中的Ref是參考波形,Yours是你的代碼生成的波形,網站會對比這兩個波形,一旦這兩者不匹配,仿真結果會變紅。

這一題就結束了。

Problem 95-Edgedetect2

題目說明

在一個8bit的變量中,從一個周期到另一個周期期間,檢測輸入信號變化。即上升沿變化或下降沿變化。輸出應在0變為1后產生。

如下圖所示為輸入與輸出的時序關系

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

圖片來自HDLBits

模塊端口聲明

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

題目解析

雙邊沿檢測,在上一題基礎上加上下降沿檢測即可。

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

點擊Submit,等待一會就能看到下圖結果:

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

注意圖中的Ref是參考波形,Yours是你的代碼生成的波形,網站會對比這兩個波形,一旦這兩者不匹配,仿真結果會變紅。

這一題就結束了。

Problem 96-Edgecapture

題目說明

對于 32 位向量中的每一位,在輸入信號從一個時鐘周期的 1 變為下一個時鐘周期的 0 時進行捕捉。“捕獲”表示輸出將保持為 1,直到寄存器復位(同步復位)。

每個輸出位的行為類似于 SR 觸發器:輸出位應在 1 到 0 轉換發生后的周期設置(為 1)。當復位為高電平時,輸出位應在正時鐘沿復位(為 0)。

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

在下面的示例波形中,為清楚起見,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

點擊Submit,等待一會就能看到下圖結果:

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

注意圖中的Ref是參考波形,Yours是你的代碼生成的波形,網站會對比這兩個波形,一旦這兩者不匹配,仿真結果會變紅。

這一題就結束了。

Problem 97-Dualedge

題目說明

熟悉在時鐘上升沿或時鐘下降沿觸發的觸發器。在時鐘的兩個邊沿觸發雙邊觸發觸發器。

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

構建一個功能類似于雙邊觸發觸發器的電路:

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

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

圖片來自HDLBits

模塊端口聲明

moduletop_module(
inputclk,
inputd,
outputq
);

題目解析

無法在 FPGA 上創建雙邊觸發觸發器。但是可以同時創建正沿觸發和負沿觸發觸發器。

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

點擊Submit,等待一會就能看到下圖結果:

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

注意圖中的Ref是參考波形,Yours是你的代碼生成的波形,網站會對比這兩個波形,一旦這兩者不匹配,仿真結果會變紅。

這一題就結束了。

總結

今天的幾道題就結束了,對于理解觸發器的非常有幫助,而且難度稍微增加了,對于閱讀波形設計邏輯非常有幫助。





審核編輯:劉清

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 時序電路
    +關注

    關注

    1

    文章

    114

    瀏覽量

    21742
  • 觸發器
    +關注

    關注

    14

    文章

    2003

    瀏覽量

    61346
  • Verilog語言
    +關注

    關注

    0

    文章

    113

    瀏覽量

    8309
  • 多路選擇器
    +關注

    關注

    1

    文章

    22

    瀏覽量

    6558

原文標題:HDLBits: 在線學習 SystemVerilog(十五)-Problem 90-97(觸發器和鎖存器(2))

文章出處:【微信號:Open_FPGA,微信公眾號:OpenFPGA】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    文解析多路選擇器的工作原理及電路實現

    本文開始介紹了多路選擇器的概念和在FPGA中多路選擇器結構,其次介紹了多路選擇器工作原理與應用,
    的頭像 發表于 04-27 08:46 ?6w次閱讀
    <b class='flag-5'>一</b>文解析<b class='flag-5'>多路</b><b class='flag-5'>選擇器</b>的工作原理及電路實現

    EDA四選一多路選擇器的設計

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

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

    開關。 · 二選一多路選擇器 二選一多路選擇器的數據輸入有兩,分別為dataa和datab。為了能夠確定
    發表于 03-01 17:10

    多路優先觸發器

    多路優先觸發器
    發表于 04-13 10:15 ?770次閱讀
    <b class='flag-5'>多路</b>優先<b class='flag-5'>觸發器</b>

    譯碼多路選擇器的使用( EDA 仿真) 實驗

    譯碼多路選擇器的使用( EDA 仿真) 實驗 、實驗目的1. 掌握Multisim電子電路仿真軟件的使用,并能進行
    發表于 02-06 14:11 ?6266次閱讀
    譯碼<b class='flag-5'>器</b>及<b class='flag-5'>多路</b><b class='flag-5'>選擇器</b>的使用( EDA 仿真) 實驗

    施密特觸發器,施密特觸發器是什么意思

    施密特觸發器,施密特觸發器是什么意思 施密特觸發器也有兩穩定狀態,但與觸發器不同的是,施
    發表于 03-08 14:14 ?1981次閱讀

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

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

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

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

    設計1位的二選一多路選擇器及其VHDL描述

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

    eda四選一多路選擇器的設計

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

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

    多路選擇器又稱數據選擇器。8選1數據選擇器(型號有74151、74LS151、74251、74LS152),下面就以74LS151為例子,介紹幾款電路圖。
    發表于 04-28 17:25 ?13.5w次閱讀
    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之多路選擇器設計

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

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

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

    基于FPGA的多路選擇器設計

    組合邏輯電路的輸出信號只與當前時刻的輸入信號有關,與其他時刻的輸入狀態無關,無存儲電路或反饋電路。多路選擇器是在多路數據傳送過程中,根據需要選擇
    的頭像 發表于 05-12 12:47 ?1592次閱讀
    基于FPGA的<b class='flag-5'>多路</b><b class='flag-5'>選擇器</b>設計

    t觸發器和jk觸發器的區別和聯系

    穩態觸發器,具有觸發輸入(T輸入)和時鐘輸入,以及
    的頭像 發表于 02-06 14:04 ?6399次閱讀
    汝南县| 至尊百家乐qvod| 桐庐棋牌世界| 百家乐官网智能系统| 大发888游戏平台hg| 百家乐官网真人博彩的玩法技巧和规则 | 百家乐官网电子路单破解| 百家乐上海代理| 百家乐官网视频游戏挖坑| 三星百家乐的玩法技巧和规则| 一直对百家乐官网很感兴趣.zibo太阳城娱乐城 | 百家乐娱乐平台真人娱乐平台| 百家乐官网双面数字筹码| 全讯网777| 哪家百家乐官网从哪而来| 六合彩特码开奖| 百家乐视频下载地址| 百家乐官网电脑上怎么赌| 百家乐平预测软件| 金龍百家乐官网的玩法技巧和规则| 棋牌休闲游戏| 百家乐吹| 百家乐官网投注网站是多少| 大发888娱乐城帝豪| 百家乐官网德州扑克桌布| 阳信县| 百家乐游戏什么时间容易出对| 百家乐官网开户送10彩金| 大发888游戏平台888| 网上百家乐有假的吗| 澳门百家乐官网登陆网址| 大发888中期| 太阳城百家乐杀祖玛| 赌博百家乐官网规则| 娱乐城注册体验金| MG百家乐大转轮| 马牌百家乐官网的玩法技巧和规则 | 百家乐官网平台注册送现金| 大发888娱乐城官方下载安装| 粤港澳百家乐官网赌场娱乐网规则 | 大发888娱乐场下载新澳博|