±±º½Êý×ÖEDAʵÑé1-8+Êý×ÖÈ¥ÔëÆ÷

Á·Ï°ÎåÓÃalways¿éʵÏֽϸ´ÔÓµÄ×éºÏÂß¼­µç· ʵÑéÄ¿µÄ£º

£¨1£©ÕÆÎÕÓÃalwaysʵÏֽϴó×éºÏÂß¼­µç·µÄ·½·¨£»

£¨2£©½øÒ»²½Á˽âassignÓëalwaysÁ½ÖÖ×éºÏµç·ʵÏÖ·½·¨µÄÇø±ðºÍ×¢Òâµã£» £¨3£©Ñ§Ï°²âÊÔÄ£¿éÖÐËæ»úÊýµÄ²úÉúºÍÓ¦Óã» £¨4£©Ñ§Ï°×ۺϲ»Í¬²ã´ÎµÄ·ÂÕ棬²¢±È½Ï½á¹û¡£

ʵÑéÔ­Àí£º

£¨1£©×Ô´¥·¢always¿é£º

Àý£º²ÉÓ÷Ç×èÈû¸³ÖµµÄ×Ô´¥·¢Õñµ´Æ÷ module osc2(clk); outputclk; regclk;

initial #10 clk=0;

always @(clk) #10 clk<=~clk; endmodule

@(clk)µÄµÚÒ»´Î´¥·¢Ö®ºó£¬·Ç×èÈû¸³ÖµµÄRHS±í´ïʽ±ã¼ÆËã³öÀ´£¬²¢°ÑÖµ¸³¸øLHSµÄʱ¼ä²¢°²ÅÅÔÚ¸üÐÂʼþ¶ÓÁÐÖС£ÔÚ·Ç×èÈû¸³Öµ¸üÐÂʼþ¶ÓÁб»¼¤»î֮ǰ£¬ÓÖÓöµ½ÁË@(clk)´¥·¢Óï¾ä£¬²¢ÇÒalways¿éÔٴζÔclkµÄÖµ±ä»¯²úÉú·´Ó¦¡£µ±·Ç×èÈûLHSµÄÖµÔÚͬһʱ¿Ì±»¸üÐÂʱ£¬@(clk)ÔÙÒ»´Î´¥·¢¡£

±¾ÊµÑéʾÀýÖÐʹÓÃÁ˵çƽÃô¸ÐµÄalways¿é£¬ËùνµçƽÃô¸ÐµÄ´¥·¢Ìõ¼þ£º@ºóµÄÀ¨ºÅÄÚµçƽÀï±íÖеÄÈκÎÒ»¸öµçƽ·¢Éú±ä»¯£¨ÓëʱÐòÂß¼­²»Í¬£¬ËüÔÚ@ºóµÄÀ¨ºÅÄÚûÓÐÑØÃô¸Ð¹Ø¼ü´Ê£¬Èçposedge»ònegedge£©£¬¾ÍÄÜ´¥·¢always¿éµÄ¶¯×÷¡£

£¨2£©assignÓëalways

ʹÓÃassign½á¹¹À´ÊµÏÖ×éºÏÂß¼­µç·£¬Èç¹ûÂß¼­¹Øϵ±È½Ï¸´ÔÓ£¬²»ÈÝÒ×Àí½âÓï¾äµÄ¹¦ÄÜ£¬¶øÊʵ±²ÉÓÃalwaysÀ´Éè¼Æ×éºÏÂß¼­£¬Ê¹Ô´´úÂëÓï¾äµÄ¹¦ÄÜÈÝÒ×Àí½â¡£

ͬһ×éºÏÂß¼­µç··Ö±ðÓÃalways¿éºÍÁ¬Ðø¸³ÖµÓï¾äassignÃèÊöʱ£¬´úÂëµÄÐÎʽ´óÏྶͥ£¬µ«ÔÚalwaysÖУ¬ÈôÊʵ±ÔËÓÃdefault£¨ÔÚcase½á¹¹ÖУ©ºÍelse£¨ÔÚif?else½á¹¹ÖУ©Óï¾äʱ£¬Í¨³£¿ÉÒÔ×ÛºÏΪ´¿×éºÏÂß¼­£¬¾¡¹Ü±»¸³ÖµµÄ±äÁ¿Ò»¶¨Òª¶¨ÒåΪregÐÍ£»Èô²»Ê¹ÓÃdefault»òelse¶ÔĬÈÏÏî½øÐÐ˵Ã÷£¬ÔòÒ×Éú³ÉÒâÏë²»µ½µÄËø´æÆ÷£¬ÕâÒ»µãÒ»¶¨×¢Ò⣡

ʵÑéÄÚÈÝ£º

ÔËÓÃalways¿éÉè¼ÆÒ»¸ö8·Êý¾ÝÑ¡ÔñÆ÷¡£ÒªÇó£ºÃ¿Â·ÊäÈëÊý¾ÝÓëÊä³öÊý¾Ý¾ùΪ4λ2½øÖÆÊý£¬µ±Ñ¡Ôñ¿ª¹Ø£¨ÖÁÉÙ3룩»òÊäÈëÊý¾Ý±ä»¯Ê±£¬Êä³öÊý¾ÝÒ²ÏàÓ¦µÄ±ä»¯¡£

13

ʵÑé´úÂ룺

module choice(a,b,c,d,e,f,g,h,n,out); input[2:0] n; input[3:0] a,b,c,d,e,f,g,h; output[3:0] out; reg[3:0] out;

always @(n,a,b,c,d,e,f,g,h) begin

case(n)

0: out = a; 1: out = b; 2: out = c; 3: out = d; 4: out = e; 5: out = f; 6: out = g; 7: out = h;

default: out=4'hx;//δÊÕµ½Ö¸Áîʱ£¬Êä³öÈÎÒâ̬¡£

endcase end

endmodule

`timescale 1ns/100ps module five; wire [3:0] out; reg [2:0] n; reg [3:0] a,b,c,d,e,f,g,h;

initial begin a={$random,$random,$random,$random}; b={$random,$random,$random,$random}; c={$random,$random,$random,$random}; d={$random,$random,$random,$random}; e={$random,$random,$random,$random}; f={$random,$random,$random,$random}; g={$random,$random,$random,$random};

14

h={$random,$random,$random,$random};

#50 n =3'b000; #50 n =3'b001; #50 n =3'b010; #50 n =3'b011; #50 n =3'b100; #50 n =3'b101; #50 n =3'b110; #50 n =3'b111; #50 $stop; end choice m (a,b,c,d,e,f,g,h,n,out);

endmodule

ʵÑé·ÂÕ棺

15

Á·Ï°ÁùÔÚVerilog HDLÖÐʹÓú¯Êý

ʵÑéÄ¿µÄ£º

£¨1£©Á˽⺯ÊýµÄ¶¨ÒåºÍÔÚÄ£¿éÉè¼ÆÖеÄʹÓã» £¨2£©Á˽⺯ÊýµÄ×ÛºÏÐÔÎÊÌ⣻

£¨3£©Á˽âÐí¶à×ÛºÏÆ÷²»ÄÜ×ۺϸ´ÔÓµÄËãÊõÔËËã¡£

ʵÑéÔ­Àí£º

ÓëÒ»°ãµÄ³ÌÐòÉè¼ÆÓïÑÔÒ»Ñù£¬Verilog HDLÖÐÒ²¿ÉʹÓú¯ÊýÒÔÊÊÓ¦¶Ô²»Í¬±äÁ¿²ÉȡͬһÖÖÔËËãµÄ²Ù×÷¡£Verilog HDLº¯ÊýÔÚ×ÛºÏʱ±»Àí½â³É¾ßÓжÀÁ¢ÔËË㹦Äܵĵç·£¬Ã¿µ÷ÓÃÒ»´Îº¯ÊýÏ൱ÓڸıäÕⲿ·Öµç·µÄÊäÈëÒԵõ½ÏàÓ¦µÄ¼ÆËã½á¹û¡£º¯ÊýµÄÄ¿µÄÊÇ·µ»ØÒ»¸öÓÃÓÚ±í´ïʽµÄÖµ¡£

£¨1£©º¯Êý¶¨Òå

Function<·µ»ØÖµµÄÀàÐÍ»ò·¶Î§>£¨º¯ÊýÃû£©£» <¶Ë¿Ú˵Ã÷Óï¾ä> <±äÁ¿ÀàÐÍ˵Ã÷Óï¾ä> Begin

<Óï¾ä> ¡­¡­ End

Endfuction

£¨2£©º¯Êýµ÷ÓÃ

<º¯ÊýÃû>£¨<±í´ïʽ>£¬?<±í´ïʽ>£©

ʵÑéÄÚÈÝ£º

Éè¼ÆÒ»¸ö´ø¿ØÖƶ˵ÄÂß¼­ÔËËãµç·£¬·Ö±ðÍê³ÉÕýÕûÊýµÄƽ·½¡¢Á¢·½ºÍ×î´óÊýΪ5µÄ½×³ËµÄÔËË㣬ҪÇó¿É×ۺϡ£±àд²âÊÔÄ£¿é£¬²¢¸ø³ö¸÷ÖÖ²ã´ÎµÄ·ÂÕ沨ÐΣ¬±È½ÏËüÃǵIJ»Í¬¡£

ʵÑé´úÂ룺

module funct(clk,data,n,result,reset);

output[8:0] result; input[3:0] n; input[3:0] data; input reset,clk; reg[8:0] result;

16

ÁªÏµ¿Í·þ£º779662525#qq.com(#Ì滻Ϊ@)