ÔÆÌ⺣ - רҵÎÄÕ·¶ÀýÎĵµ×ÊÁÏ·ÖÏíÆ½Ì¨

µ±Ç°Î»ÖãºÊ×Ò³ > 2015ÄêEDA¸´Ï°11

2015ÄêEDA¸´Ï°11

  • 62 ´ÎÔĶÁ
  • 3 ´ÎÏÂÔØ
  • 2026/4/27 3:15:38

module d_flop(q,d,clr,clk); output q; input d,clr,clk; reg q;

always @(clr) if(!clr) assign q=0; else deassign q;

always @(negedge clk) q=d; endmodule

module shifter(seri_in,clk,clrb,Q); input seri_in,clk,clrb; output[3:0] Q;

d_flop U1(Q[0],seri_in,clrb,clk), U2(Q[1],Q[0],clrb,clk), U3(Q[2],Q[1],clrb,clk), u4(Q[3],Q[2],clrb,clk); endmodule

10. ʹÓÃcase Óï¾äÉè¼Æ°Ë¹¦ÄܵÄËãÊõÔËËãµ¥Ôª(ALU),ÆäÊäÈëÐźÅa ºÍb ¾ùΪ4

룬»¹Óй¦ÄÜÑ¡ÔñÐźÅselect Ϊ3 룬Êä³öÐźÅΪout(5 λ)£¬ËãÊõÔËËãµ¥ÔªALU ËùÖ´ÐеIJÙ×÷Óëselect ÐźÅÓйأ¬¾ßÌå¹ØÏµÈçͼ1 ËùÁÐ(ºöÂÔÊä³ö½á¹ûÖеÄÉÏÒçºÍÏÂÒçµÄλ)¡£ select ÐźŠ3`b000 3`b001 3`b010 3`b011 3`b100 3`b101 3`b110 3`b111 ¹¦ÄÜ Out=a out=a+b out=a-b out=a/b out=a%b out=a<<1 out=a>>1 out=a>b

module ALU(a,b,select,out); input[3:0] a,b; input[2:0] select; output[4:0] out; reg[4:0] out; always @(select) begin

case(select) 3'b000: out=a; 3'b001: out=a+b; 3'b010: out=a-b; 3'b011: out=a/b; 3'b100: out=a%b; 3'b101: out=a<<1; 3'b110: out=a>>1; 3'b111: out=a>b; default:out=5'bx;

endcase end

endmodule

11¡¢ÇëÓÃ$random ÅäºÏÇóÄ£ÔËËã±àд£º

(1)ÓÃÓÚ²âÊÔµÄÌø±äÑØ¶¶¶¯ÎªÖÜÆÚ1/10 µÄʱÖÓ²¨ÐΡ£ (2)Ëæ»ú³öÏÖµÄÂö¿íËæ»úµÄÕ­Âö¿í¡£

module random_pulse(dout); output[9:0] dout; reg[9:0] dout; integer delay; initial begin

#10 dout=0;

for(k=0;k<100;k=k+1) begin

delay={$random}; #delay dout=1£» #delay dout=0£» end end

endmodule

12¡¢ÓÃVerilogÓïÑÔÉè¼ÆÒ»¸ö¸ñÀ×ÂëÖÁ¶þ½øÖÆÊýµÄת»»Æ÷£¨Èç±í1£©£¬²¢±àд²âÊÔ´úÂë¡£ Ìáʾ£º¸ñÀ×Âëת»»Îª¶þ½øÖÆÂëËã·¨ÊÇ£º´Ó×ó±ßµÚ¶þλÆð£¬½«Ã¿Ò»Î»Óë×ó±ßһλ½âÂëºóµÄÖµ¡°Òì»ò¡±£¬×÷Ϊ¸Ã½âÂëºóµÄÖµ£¨×î×ó±ßµÄһλÒÀÈ»²»±ä£©¡£ ±í1 ¸ñÀ×ÂëÓë¶þ½øÖÆ×ª»» ¸ñÀ×Âë 000 001 011 010 110 111 101 100 ¶þ½øÖÆ 000 001 010 011 100 101 110 111 module gry2bin(Gry,Bin); parameter length = 3; output [length-1:0] Bin; input [length-1:0]Gry ; reg [length-1:0] Bin; integer i; always @ (Gry) begin

Bin[length-1]=Gry[length-1]; for(i=length-2;i>=0;i=i-1) Bin[i]=Bin[i+1]^Gry[i]; end endmodule

`timescale 1ns/1ns `include \ module stimulus; reg[2:0] Gry; wire[2:0]Bin;

gry2bin mycount(Gry,Bin); initial begin Gry=3'b000; #10 Gry=3'b001; #10 Gry=3'b011; #10 Gry=3'b010; #10 Gry=3'b110; #10 Gry=3'b111; #10 Gry=3'b101; #10 Gry=3'b100; #10 $finish; end

initial $monitor($time,\ endmodule

13¡¢Í¼1ËùʾµÄÊÇË«2Ñ¡1¶à·ѡÔñÆ÷¹¹³ÉµÄµç·MUXK¡£¶ÔÓÚÆäÖÐMUX21A£¬µ±s=0ºÍs=1ʱ£¬·Ö±ðÓÐy=aºÍy=b¡£ÊÔÔÚÒ»¸öÄ£¿é½á¹¹ÖÐÓÃÁ½¸ö¹ý³ÌÀ´±í´ï´Ëµç·¡£

ËÑË÷¸ü¶à¹ØÓÚ£º 2015ÄêEDA¸´Ï°11 µÄÎĵµ
  • ÊÕ²Ø
  • Î¥¹æ¾Ù±¨
  • °æÈ¨ÈÏÁì
ÏÂÔØÎĵµ10.00 Ôª ¼ÓÈëVIPÃâ·ÑÏÂÔØ
ÍÆ¼öÏÂÔØ
±¾ÎÄ×÷Õߣº...

¹²·ÖÏí92ƪÏà¹ØÎĵµ

Îĵµ¼ò½é£º

module d_flop(q,d,clr,clk); output q; input d,clr,clk; reg q; always @(clr) if(!clr) assign q=0; else deassign q; always @(negedge clk) q=d; endmodule module shifter(seri_in,clk,clrb,Q); input seri_in,clk,clrb; output[3:0] Q; d_flop U1(Q[0],seri_in,clrb,clk), U2(Q[1],Q[0],clrb,clk), U3(Q[2],Q[1],clrb,clk)

¡Á ÓοͿì½ÝÏÂÔØÍ¨µÀ£¨ÏÂÔØºó¿ÉÒÔ×ÔÓɸ´ÖƺÍÅŰ棩
µ¥Æª¸¶·ÑÏÂÔØ
ÏÞÊ±ÌØ¼Û£º10 Ôª/·Ý Ô­¼Û:20Ôª
VIP°üÔÂÏÂÔØ
ÌØ¼Û£º29 Ôª/Ô ԭ¼Û:99Ôª
µÍÖÁ 0.3 Ôª/·Ý ÿÔÂÏÂÔØ150·Ý
ȫվÄÚÈÝÃâ·Ñ×ÔÓɸ´ÖÆ
VIP°üÔÂÏÂÔØ
ÌØ¼Û£º29 Ôª/Ô ԭ¼Û:99Ôª
µÍÖÁ 0.3 Ôª/·Ý ÿÔÂÏÂÔØ150·Ý
ȫվÄÚÈÝÃâ·Ñ×ÔÓɸ´ÖÆ
×¢£ºÏÂÔØÎĵµÓпÉÄÜ¡°Ö»ÓÐĿ¼»òÕßÄÚÈݲ»È«¡±µÈÇé¿ö£¬ÇëÏÂÔØÖ®Ç°×¢Òâ±æ±ð£¬Èç¹ûÄúÒѸ¶·ÑÇÒÎÞ·¨ÏÂÔØ»òÄÚÈÝÓÐÎÊÌ⣬ÇëÁªÏµÎÒÃÇЭÖúÄã´¦Àí¡£
΢ÐÅ£ºfanwen365 QQ£º370150219
Copyright © ÔÆÌ⺣ All Rights Reserved. ËÕICP±¸16052595ºÅ-3 ÍøÕ¾µØÍ¼ ¿Í·þQQ£º370150219 ÓÊÏ䣺370150219@qq.com