色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美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>
    主站蜘蛛池模板: 色狠狠xx| 一区二区不卡在线视频| 最近中文字幕无吗免费高清| 法国剧丝袜情版h级在线电影| 好男人的视频在线观看| 欧美激情视频一区| 亚洲人视频在线| 丰满少妇发泄14p| 牛牛在线(正)精品视频| 亚洲色播永久网址大全| 大学生第一次破女在线观看| 久久人妻熟女中文字幕AV蜜芽| 日韩一区二区三区精品| 6080yy 久久 亚洲 日本| 国产在线精品视频资源| 色爱区综合激情五月综合激情| 18黄女脱内衣| 久爱精品亚洲电影午夜| 无码人妻99久久密AV| a色毛片免费视频| 久久re视频这里精品一本到99| 我半夜摸妺妺的奶C了她软件| 99久久免费看国产精品| 久久亚洲国产精品亚洲| 亚洲另类国产综合在线| 国产精品点击进入在线影院高清| 嫩草影院精品视频在线观看| 在线观看免费av网站| 花季v3.0.2黄在线观看| 性春院| 丰满五十老女人性视频| 欧美特黄99久久毛片免费| 18禁黄久久久AAA片| 久久无码AV亚洲精品色午夜| 亚洲看片无码免费视频| 国内国外精品影片无人区| 无码毛片内射白浆视频| 国产成人拍精品免费视频爱情岛| 日本老妇一级特黄aa大片| 99日精品欧美国产| 欧美日韩一级黄色片|