怎样用Verilog实现4选1数据选择器

module mux4_1(out,in0,in1,in2,in3,sel);

output out;

input in0,in1,in2,in3;

input[1:0] sel;

reg out;

always @(in0 or in1 or in2 or in3 or sel) //敏感信号列表

case(sel)

2'b00: out=in0;

2'b01: out=in1;

2'b10: out=in2;

2'b11: out=in3;

default: out=2'bx;

endcase

endmodule

扩展资料:

注意事项

由于选择器使用条件触发的方法对应真值表进行匹配输出与输入,因此可以联想到在C程序设计中的条件语句“If”和“Case”两种。

Case语句下可能出现锁存器。注释case条件下的case语句块的某一行可以得到不完整的case语句下的2位四路选择器。由不完整case语句下的2位四路选择器可知:

由于case语句所有分支处于同一优先级,所以当条件不完整时,对于处理结果,它不取决于语句的先后顺序,只取决于待处理信号,而处理结果为与待处理信号相差1’b1的信号的处理结果,在这一条件下相当于与待处理信号相差1’b1的信号的处理结果得到了锁存,锁存器因此产生。

对与锁存器而言,锁存器在待处理信号存在Glitch的情况下,可能会对Glitch产生锁存,从而导致锁存出现严重错误,是目标信号处理结果与预期目的产生极大的偏差,因此锁存器存在不稳定因素,所以在使用锁存器时,要牢记优先消除待处理信号的Glitch。



  • 鎬庢牱鐢╒erilog瀹炵幇4閫1鏁版嵁閫夋嫨鍣
    绛旓細module mux4_1(out,in0,in1,in2,in3,sel);output out;input in0,in1,in2,in3;input[1:0] sel;reg out;always @(in0 or in1 or in2 or in3 or sel) //鏁忔劅淇″彿鍒楄〃 case(sel)2'b00: out=in0;2'b01: out=in1;2'b10: out=in2;2'b11: out=in3;default: out=2'bx...
  • 璇鐢╒erilog HDL璇█缂栧啓瀹炵幇鍥浣嶆暟鎹荤嚎瀹藉害鐨鍥涢変竴鏁版嵁閫夋嫨鍣,骞朵娇...
    绛旓細input [1:0] sel;output [4:0] out;input en;reg [3:0] output;wire [1:0] sel;always begin case (sel)2'b00: output = in0;2'b01: output = in1;2'b10: output = in2;2'b11: output = in3;endcase end assign out[3:0] = en ? output : 4'bxxxx;endmodule ...
  • 姹4閫1閫夋嫨鍣ㄧ敤modelsim浠跨湡娉㈠舰鍥,娴嬭瘯浠g爜鍟
    绛旓細module Orion_mux4_1(input [3:0] a , input [1:0] sel , output reg y);always @ (a , sel)begin case (sel)2'b00 : y = a[0];2'b01 : y = a[1];2'b10 : y = a[2];2'b11 : y = a[3];default: y = 1'bx;endcase end endmodule 鐩稿簲娴嬫祴璇曚唬鐮侊細`timescal...
  • verilog鐢ㄦā鍧楄皟鐢ㄧ殑鏂瑰紡瀹炵幇4閫1閫夋嫨鍣ㄧ粍鍚堟垚16閫1閫夋嫨鍣
    绛旓細鐢5涓 4閫1 缁勬垚灏卞彲浠ヤ簡 module mux16( input [15:0] din, input [3:0] sel, output dout); wire y0,y1,y2,y3; mux4 mux4_0( .a(din[0]), .b(din[1]), .c(din[2]), .d(din[3]), .sel(sel[1:0]), .y(y0) ); mux4 ...
  • Verilog HDL 2浣鍥涢変竴鏁版嵁閫夋嫨鍣鎬庝箞璁捐
    绛旓細module sel4(a,b,c,d,y,sel);input a,b,c,d;input [1:0]sel;output y;always@(a or b or c or d or sel)case(sel)0: y<=a;1:y<=b;2:y<=c;3:y<=d;endcase endmodule 鍏ㄦ墜鎵撶殑锛屾湜閲囩撼
  • verilog HDL鎻忚堪鍥涢変竴鏁版嵁閫夋嫨鍣ㄩ噷鐨input[1:0] sel鏄...
    绛旓細1锛塱nput [1:0] sel灏辨槸璇磋緭鍏ヤ俊鍙穝el鏄2浣嶇殑鎰忔濓紝鍒嗗埆鏄痵el[1], sel[0]2锛2'b00灏辨槸琛ㄧず2涓簩杩涘埗浣嶏紝1鈥榖0灏辨槸涓涓簩杩涘埗浣嶃俠琛ㄧずbinary浜岃繘鍒讹紝鍓嶉潰鐨勬暟瀛椾唬琛ㄤ綅鏁 3锛夎〃绀洪粯璁2浣嶇殑杈撳嚭鍊间负楂橀樆鎬併傚叿浣撳埌楂橀樆鎬侊紝鏄竴涓父瑙佺殑杈撳嚭鐘舵侊紝浣犲彲浠ョ悊瑙d负楂橈紝涓嶈繃鐪熸搴旂敤鐨勬椂鍊欒繕鏄...
  • 瀵逛簬绠鍗鐨刅erilog鎻忚堪鐨4閫1澶氳矾閫夋嫨鍣(鏃犲欢杩)娴嬭瘯鐨勭枒闂
    绛旓細寤烘ā闂锛屼綘鐨勬ā鍨嬫槸锛圫1锛孲0锛00閫夋嫨D0锛01閫夋嫨D2锛10閫夋嫨D1锛 11閫夋嫨D3銆傜數璺湅鍥 杩樻湁璇翠竴鐐规垜鐨勬剰瑙侊紙鍙互鏃犺锛夊鏁板瓧璁捐涓嶈鐢ㄩ棬绾у缓妯★紒锛侊紒姣棤鎰忎箟锛侊紒鍒窡鎴戞彁鑰冭瘯锛侊紒verilog鍏ラ棬鎺ㄨ崘浣犵湅銆妚erilog HDL楂樼骇鏁板瓧璁捐銆
  • 涓撻2-6:鏁版嵁閫夋嫨鍣
    绛旓細鑰屾洿涓哄鏉鐨4閫1鏁版嵁閫夋嫨鍣紝灏遍渶瑕佷袱涓夋嫨杈撳叆锛屽畠浠氳繃宸у鐨勯昏緫璁捐锛岃兘澶熺伒娲诲湴閫夋嫨鍥涓暟鎹簮涓殑浠讳綍涓涓傛暟鎹夋嫨鍣ㄧ殑榄斿姏骞朵笉姝簬姝わ紝瀹冧滑鏄疐PGA涓昏緫鍗曞厓锛圠UT锛変笉鍙垨缂虹殑缁勪欢銆備緥濡傦紝涓涓4閫1閫昏緫鍑芥暟琛ㄨ揪鍜屾煡鎵捐〃锛屾鏄氳繃鏁版嵁閫夋嫨鍣ㄧ殑绮剧‘閫夋嫨锛瀹炵幇浜嗛珮鏁堢殑鏁版嵁澶勭悊銆傚湪淇″彿浼犺緭...
  • 姹verilog绋嬪簭:鐢鍥涚墖鍥涢変竴鐨勬暟鎹夋嫨鍣瀹炵幇涓涓16閫変竴鐨勬暟鎹...
    绛旓細4鐗囧簲璇ュ仛涓嶄簡16閫1锛岄渶瑕5鐗囥傚叾涓紝4涓鍥涢変竴瀹炵幇16閫4锛屾渶鍚庝竴涓4閫1锛岃緭鍑恒備笅闈㈡槸涓涓4閫1鐨閫夋嫨鍣紝渚涘弬鑰冦16閫1鍙互浣跨敤5涓4閫1鎼捣鏉ャ//=== //sel_16_1 module sel_16_1(a,b,c,d,c0_0,c0_1,c0_2,c0_3,c1_0,c1_1,c1_2,c1_3,c2_0,c2_1,c2_2,c2_3,c3_...
  • 鐢╲erilog璁捐涓涓4浣4杈撳叆鏈澶ф暟鍊兼娴嬬數璺傛嫓鎵樺ぇ绁炲府涓嬪繖_鐧惧害鐭...
    绛旓細module Maximum_value_detection锛坆aimostlarge,a,b,c,d锛夛紱output[3:0]Mostlarge锛沬nput[3:0] a b,c,d锛泈ire[3:0]sum1,sum2,sum3锛沘ssign sum1=(a锛瀌aob)?a:b;assign sum2=(c锛瀌)?c:d;assign Mostlarge=(sum1锛瀞um2)?sum1:sum2;endmodule module 锛坈lk,rstn,n1,n2,n3,n4,...
  • 扩展阅读:4选1数据选择器芯片 ... verilog实现24译码器 ... verilog按键防抖 ... 4选1数据选择器引脚图 ... 5分频verilog实现 ... 41选择器 ... 4选1多路选择器verilog ... verilog实现8位流水灯 ... verilog实现按键加1 ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网