生活随笔
收集整理的這篇文章主要介紹了
优先编码器
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
優先編碼器
題目描述
8-3優先編碼器的功能表
`timescale 1ns/1nsmodule encoder_83(input [7:0] I ,input EI ,output wire [2:0] Y ,output wire GS ,output wire EO
);reg [2:0]Y_reg;reg GS_reg;reg EO_reg;always@(*)beginif(EI == 1'b0)beginY_reg = 3'b0;GS_reg = 1'b0;EO_reg = 1'b0;endelse begincasez(I) //casex(I)8'b0000_0000:beginY_reg = 3'b0;GS_reg = 1'b0;EO_reg = 1'b1;end8'b1???_????:beginY_reg = 3'b111;GS_reg = 1'b1;EO_reg = 1'b0;end8'b01??_????:beginY_reg = 3'b110;GS_reg = 1'b1;EO_reg = 1'b0;end8'b001?_????:beginY_reg = 3'b101;GS_reg = 1'b1;EO_reg = 1'b0;end8'b0001_????:beginY_reg = 3'b100;GS_reg = 1'b1;EO_reg = 1'b0;end8'b0000_1???:beginY_reg = 3'b011;GS_reg = 1'b1;EO_reg = 1'b0;end8'b0000_01??:beginY_reg = 3'b010;GS_reg = 1'b1;EO_reg = 1'b0;end8'b0000_001?:beginY_reg = 3'b001;GS_reg = 1'b1;EO_reg = 1'b0;end8'b0000_0001:beginY_reg = 3'b000;GS_reg = 1'b1;EO_reg = 1'b0;enddefault:beginY_reg = 3'b0;GS_reg = 1'b0;EO_reg = 1'b0;endendcaseendendassign Y = Y_reg;assign GS = GS_reg;assign EO = EO_reg;
endmodule
知識點
case,casex,casez的真值表
在case語句中,敏感表達式中與各項值之間的比較是一種全等比較,每一位都相同才認為匹配。
在casez語句中,如果分支表達式某些位的值為高阻z,那么對這些位的比較就會忽略,不予考慮,而只關注其他位的比較結果。
在casex語句中,則把這種處理方式進一步擴展到對x的處理,即如果比較雙方有一方的某些位的值是z或x,那么這些位的比較就不予考慮。
1)一般經常使用到的是casez語句,最好少用casex
2)case/casez/casex其實都是可綜合的
3)在電路中,可以用?來表示無關值的z
4)case的描述,匹配都是從上到下進行的
總結
以上是生活随笔為你收集整理的优先编码器的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。