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

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

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

3天內不再提示

always組合邏輯塊的講解和譯碼器的實現

冬至子 ? 來源:小小研究生 ? 作者:xxyjs2020 ? 2023-05-22 15:13 ? 次閱讀

always 語句

always 語句是重復執行的。always 語句塊從 0 時刻開始執行其中的行為語句;當執行完最后一條語句后,便再次執行語句塊中的第一條語句,如此循環反復。多用于 仿真時鐘的產生信號行為的檢測等。

always語句的格式:

always @(posedge clk) begin
    temp    = a ;
    a       = b ;
    b       = temp ;
end

()中可以是*,表示:每當任何輸入發生變化時執行begin和end之間的語句。也可以是posedge clk,表示:時鐘上升沿時執行begin和end之間的語句。assign語句和always @(*)創建相同的組合邏輯,比如下面代碼中的兩個輸出波形是一致的。

module top_module(
    input a, 
    input b,
    output wire out_assign,
    output reg out_alwaysblock
);
assign out_assign=a&b;
    always @(*) begin
       out_alwaysblock=a&b; 
    end
endmodule

連續性賦值,過程性賦值 :連續性賦值總是處于激活狀態,任何操作數的改變都會影響表達式的結果;過程賦值只有在語句執行的時候,才會起作用。

阻塞賦值與非阻塞賦值 :是過程賦值的兩種類型。

阻塞賦值 :阻塞賦值屬于順序執行,下一條語句執行前,當前語句一定會執行完畢。使用等號 = 作為賦值符。initial語句用阻塞賦值。

非阻塞賦值 :并行執行,即下一條語句的執行和當前語句的執行是同時進行的,它不會阻塞位于同一個語句塊中后面語句的執行。使用 <= 作為賦值符。

使用非阻塞賦值是為了 避免競爭冒險 ,那么實際使用中只需要記住:always 時序邏輯****塊中多用非阻塞賦值<=(后面的時序邏輯電路會另外介紹),always 組合邏輯塊中多用阻塞賦值=;在仿真電路時,initial 塊中一般多用阻塞賦值=。例如下面代碼中,用assign語句,always組合語句,always時鐘語句實現異或:

module top_module(
    input clk,
    input a,
    input b,
    output wire out_assign,
    output reg out_always_comb,
    output reg out_always_ff   );
assign out_assign=a^b;
    always @(*) begin
       out_always_comb=a^b; 
    end
    always @(posedge clk) begin
       out_always_ff<=a^b; 
    end
endmodule

if 語句格式

if (condition1)       true_statement1 ;
else if (condition2)        true_statement2 ;
else if (condition3)        true_statement3 ;
else                      default_statement ;

如果只有兩種情況,就只有if和else。下面用上一節中MUX2_1做練習,上一節中采用了assign的三元運算符語句,這里使用always if語句實現2選1的功能:

module mux2_1 
(
input wire in1, 
input wire in2, 
input wire sel, 
output reg out 
 ); 
 
 always@(*) begin
 if(sel == 1'b1)//當“if...else...”中只有一個變量時不需要加“begin...end".但是為了不遺漏,還是加上
 out = in1; //always塊中的組合邏輯關系時使用阻塞賦值“=”進行賦值
 else
 out = in2;
 end
 endmodule

3-8譯碼器的實現

從真值表看譯碼器功能:A2A1A0=000-111共8種輸入,對應輸出Y的下標,對應下標的輸出為1(高電平),其他輸出為0(低電平)。3-8譯碼器的作用:按照之前點亮LED燈的思路,如果一個I/O端口控制一個LED燈,那么I/O端口很有可能不夠用,這時候聰明人就想出用3-8譯碼器的方式,3個I/O口就可以控制8個LED。

圖片

設計規劃

這個示例中,繪制波形圖如圖所示。

圖片

圖片

編寫代碼

module decoder3_8
(
input wire in1 , 
input wire in2 , 
input wire in3 , 
output reg [7:0] out 
);


 always@(*) begin
 //使用"{}"位拼接符將31bit數據按照順序拼成一個3bit數據
 if({in1, in2, in3} == 3'b000)
 out = 8'b0000_0001;
 else if({in1, in2, in3} == 3'b001)
 out = 8'b0000_0010;
 else if({in1, in2, in3} == 3'b010)
 out = 8'b0000_0100;
 else if({in1, in2, in3} == 3'b011)
 out = 8'b0000_1000;
 else if({in1, in2, in3} == 3'b100)
 out = 8'b0001_0000;
 else if({in1, in2, in3} == 3'b101)
 out = 8'b0010_0000;
 else if({in1, in2, in3} == 3'b110)
 out = 8'b0100_0000;
 else if({in1, in2, in3} == 3'b111)
 out = 8'b1000_0000;
 else
 out = 8'b0000_0001;
end
 endmodule

代碼中使用always組合邏輯塊。由于if對應的執行語句只有一句,可以不使用begin,end但是由于怕以后復雜代碼會遺漏,還是選擇加上。always組合邏輯使用阻塞語句,用=進行賦值。

上面RTL代碼綜合出的RTL視圖:

圖片

編寫testbench

`timescale 1ns/1ns
module tb_decoder3_8();


//reg define
reg in1;
reg in2;
reg in3;
wire [7:0] out;


 //初始化輸入信號
 initial begin
 in1 <= 1'b0;
 in2 <= 1'b0;
 in3 <= 1'b0;
 end


 always #10 in1 <= {$random} % 2;
 always #10 in2 <= {$random} % 2;
 always #10 in3 <= {$random} % 2;
 //-------------decoder3_8_inst----------------
 decoder3_8 decoder3_8_ins
 (
 .in1(in1), 
 .in2(in2), 
 .in3(in3), 
 .out(out) 
 );


 endmodule

經過兩個實例后,testbench已經超級熟悉了吧。

對比波形

看看波型:

圖片

驗證了波形的正確性。

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

    關注

    9

    文章

    428

    瀏覽量

    26508
  • led燈
    +關注

    關注

    22

    文章

    1592

    瀏覽量

    107950
  • 譯碼器
    +關注

    關注

    4

    文章

    310

    瀏覽量

    50314
  • 仿真電路
    +關注

    關注

    5

    文章

    82

    瀏覽量

    33292
收藏 人收藏

    評論

    相關推薦

    譯碼器邏輯功能和使用方法

    譯碼器是一個多輸入、多輸出的組合邏輯電路。它的作用是把給定的代碼進行“翻譯”,變成相應的狀態,使輸出通道中相應的一路有信號輸出。
    的頭像 發表于 10-11 12:51 ?9396次閱讀
    <b class='flag-5'>譯碼器</b>的<b class='flag-5'>邏輯</b>功能和使用方法

    組合邏輯3-8譯碼器的設計及實驗

    組合邏輯3-8譯碼器的設計及實驗  說明:本書將以實驗一為例詳細介紹Altera公司MaxplusII 10.1版本軟件的基本應用,其它實驗將不再贅述。讀者在通過本實驗后將對
    發表于 10-09 18:22

    FPGA基礎學習筆記--組合邏輯電路-編碼譯碼器

    `FPGA基礎學習筆記--組合邏輯電路-編碼譯碼器編碼4輸入2輸出編碼代碼如下modul
    發表于 02-20 15:36

    第二章_組合邏輯電路之譯碼器

    本帖最后由 芯航線跑堂 于 2016-12-23 21:02 編輯 組合邏輯電路設計之譯碼器課程目標: 1. 再次熟悉Quartus II工程的建立以及完整的FPGA開發流程 2. 以
    發表于 12-20 18:45

    第二章 組合邏輯電路之譯碼器

    組合邏輯電路設計之譯碼器課程目標: 1. 再次熟悉Quartus II工程的建立以及完整的FPGA開發流程 2. 以譯碼器為例學會簡單組合
    發表于 12-20 18:54

    如何利用譯碼器進行組合邏輯電路的設計呢

    集成電路編碼譯碼器的工作原理即邏輯功能是什么?如何利用邏輯門去實現一種集成電路編碼呢?如何
    發表于 11-03 06:55

    譯碼器定義

    譯碼器1. 譯碼器定義譯碼器是一種用以檢測輸入位(碼)的特定組合是否存在,并以特定的輸出電平來指示這種特定碼的存在的數字電路。——《數字電子技術基礎系統方法》
    發表于 12-07 09:37

    138譯碼器怎么用

    138譯碼器的設置目的是為了實現IO復用,單片機上IO資源緊張,掛載的外設較多,為了解決這一矛盾,引入了138譯碼器單個138譯碼器能夠利用3個IO
    發表于 01-12 07:25

    譯碼器

    譯碼器 譯碼是編碼的逆過程,即將某個二進制翻譯成電路的某種狀態。實現譯碼操作的電路稱為譯碼器
    發表于 09-27 12:59 ?1.4w次閱讀
    <b class='flag-5'>譯碼器</b>

    譯碼器,譯碼器是什么意思

    譯碼器,譯碼器是什么意思 譯碼器組合邏輯電路的一個重要的器件,其可以分為:變量譯碼和顯示
    發表于 03-08 16:32 ?5484次閱讀

    譯碼器邏輯功能_譯碼器的作用及工作原理

    本文首先介紹了譯碼器的定義與譯碼器的分類,其次介紹了譯碼器的作用和譯碼器的工作原理,最后介紹了譯碼器
    發表于 02-08 14:04 ?11.5w次閱讀
    <b class='flag-5'>譯碼器</b>的<b class='flag-5'>邏輯</b>功能_<b class='flag-5'>譯碼器</b>的作用及工作原理

    譯碼器的分類和應用

    本文主要介紹了譯碼器的分類和應用。譯碼器指的是具有譯碼功能的邏輯電路,譯碼是編碼的逆過程,它能將二進制代碼翻譯成代表某一特定含義的信號(即電
    的頭像 發表于 04-04 11:51 ?4.3w次閱讀
    <b class='flag-5'>譯碼器</b>的分類和應用

    集成譯碼器邏輯功能和使用方法

    譯碼器是一個多輸入、多輸出的組合邏輯電路。它的作用是把給定的代碼進行“翻譯”,變成相應的狀態,使輸出通道中相應的一路有信號輸出。譯碼器在數字系統中有廣泛的用途,不僅用于代碼的轉換、終端
    的頭像 發表于 04-26 14:34 ?4504次閱讀
    集成<b class='flag-5'>譯碼器</b>的<b class='flag-5'>邏輯</b>功能和使用方法

    組合邏輯電路中的譯碼器介紹

    譯碼器定義 邏輯功能:將每個輸入的二進制代碼對應輸出為高、低電平信號。 譯碼是編碼的反操作。
    的頭像 發表于 04-30 16:19 ?2254次閱讀
    <b class='flag-5'>組合</b><b class='flag-5'>邏輯</b>電路中的<b class='flag-5'>譯碼器</b>介紹

    FPGA設計:always組合邏輯講解譯碼器實現

    always 語句是重復執行的。always 語句從 0 時刻開始執行其中的行為語句;當執行完最后一條語句后,便再次執行語句中的第一條語句,如此循環反復。多用于仿真時鐘的產生,信號
    的頭像 發表于 05-12 14:42 ?4467次閱讀
    FPGA設計:<b class='flag-5'>always</b><b class='flag-5'>組合</b><b class='flag-5'>邏輯</b><b class='flag-5'>塊</b>的<b class='flag-5'>講解</b>和<b class='flag-5'>譯碼器</b>的<b class='flag-5'>實現</b>
    主站蜘蛛池模板: 2020年国产理论| 亚洲免费精品| 色宅男看片午夜大片免费看| 中文字幕人妻无码系列第三区 | 欧美另类老女人| 91蜜桃视频| 免费国产黄线在线播放| 13一18TV处流血TV| 老阿姨才是最有V味的直播| 艳鉧动漫片1~6全集在线| 精品无码无人网站免费视频| 亚洲无遮挡| 口工漫画r18全彩啪啪| 重口味av| 女王黄金vk| 芭乐视频网页版在线观看| 欧美一区二区高清| yellow免费观看直播| 日韩吃奶摸下AA片免费观看| 高清欧美videos sexo| 无人在线观看免费高清视频播放| 国产成人刺激视频在线观看| 我的年轻漂亮继坶三级| 国产亚洲精品成人a在线| 亚洲欧美一区二区久久| 久久青青草原精品国产软件| 9420高清完整版在线电影免费观看| 免费可以看黄的视频s色| 菠萝菠萝蜜高清观看在线| 欧美一区二区三区免费播放| 东京热无码中文字幕av专区| 乌克兰xxxxx| 精品国产在线手机在线| 18亚洲男同gay1069| 欧美video巨大粗暴18| 粉嫩国产14xxxxx0000| 亚色九九九全国免费视频| 久久久久999| 边做边爱免费视频| 香蕉AV福利精品导航| 久久视频在线视频|