Äú¿ÉÒÔ¾èÖú£¬Ö§³ÖÎÒÃǵĹ«ÒæÊÂÒµ¡£

1Ôª 10Ôª 50Ôª





ÈÏÖ¤Â룺  ÑéÖ¤Âë,¿´²»Çå³þ?Çëµã»÷Ë¢ÐÂÑéÖ¤Âë ±ØÌî



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Model Center   Code  
»áÔ±   
   
 
     
   
 ¶©ÔÄ
  ¾èÖú
Verilog HDLÈýÖÖÃèÊö·½Ê½
 
×÷Õߣºkww_
  4604  次浏览      27
 2020-9-18
 
±à¼­ÍƼö:
±¾ÎÄÖ÷Òª½éÉÜVerilog HDLÈýÖÖÃèÊö·½Ê½£¬·Ö±ðÊÇÊý¾ÝÁ÷½¨Ä£·½Ê½£¬ÐÐΪ¼¶½¨Ä£·½Ê½ÒÔ¼°½á¹¹»¯½¨Ä£·½Ê½£¬Ï£Íû¶ÔÄúµÄѧϰÓÐËù°ïÖú¡£
±¾ÎÄÀ´×ÔÓÚCSDN£¬ÓÉ»ðÁú¹ûÈí¼þAlice±à¼­¡¢ÍƼö¡£

Ò».Êý¾ÝÁ÷½¨Ä£·½Ê½

ÔÚ×éºÏÂß¼­µç·ÖУ¬Êý¾Ý²»»á´æ´¢£¬Òò´ËÊäÈëÐźž­¹ýµç·±äΪÊä³öÐźÅÀàËÆÓÚÊý¾ÝÁ÷¶¯¡£¿ÉÒÔͨ¹ýÁ¬Ðø¸³ÖµÓï¾äÕâÖÖÌØÐÔ½øÐн¨Ä££¬ÕâÖÖ½¨Ä£·½Ê½Í¨³£±»³ÆÎªÊý¾ÝÁ÷½¨Ä£¡£

Á¬Ðø¸³ÖµÓï¾äÖ»ÄÜÓÃÀ´¶ÔÁ¬ÏßÐͱäÁ¿½øÐÐÇý¶¯£¬Ëü¿ÉÒÔ²ÉÈ¡ÏÔʽÁ¬Ðø¸³ÖµÓï¾äºÍÒþʽÁ¬Ðø¸³ÖµÓï¾äÁ½ÖÖ¸³Öµ·½Ê½¡£

1.ÏÔʽÁ¬Ðø¸³ÖµÓï¾ä

ÓÉÁ½ÌõÓï¾ä¹¹³É£º

¸ñʽ£º

<Á¬ÐøÐͱäÁ¿ÀàÐÍ><λ¿í><±äÁ¿Ãû>; // ¶ÔÁ¬ÏßÐͱäÁ¿½øÐÐÀàÐÍ˵Ã÷

assign #<ÑÓ³Ù><±äÁ¿Ãû>=¸³ÖµÓï¾ä£» // ¶ÔÕâ¸öÁ¬ÏßÐͱäÁ¿½øÐÐÁ¬Ðø¸³ÖµµÄ¸³ÖµÓï¾ä

2.ÒþʽÁ¬Ðø¸³ÖµÓï¾ä

¸ñʽ£º

<Á¬ÐøÐͱäÁ¿ÀàÐÍ><¸³ÖµÇý¶¯Ç¿¶È><λ¿í>#<ÑÓ³Ù><±äÁ¿Ãû>=¸³ÖµÓï¾ä£»

×¢Ò⣺

a. Á¬ÐøÐͱäÁ¿ÀàÐÍĬÈÏΪwire£»

b.λ¿íĬÈÏ1λ£»

c.Çý¶¯Ç¿¶ÈÖ»´æÔÚÓÚÒþʽÁ¬Ðø¸³ÖµÓï¾ä£¬Ä¬ÈÏ£¨strong1£¬strong0£©£¬ÈôÁ½¸öÇý¶¯Ç¿¶ÈÒÔ¸ßÇý¶¯ÎªÖ÷£»

d.ÑÓ³Ù#(delay1£¬delay2£¬delay3)·Ö±ðΪÉÏÉýÑØ£¬Ï½µÑØ£¬±äΪ¸ß×è̬µÄÑÓ³Ù£»

e.Á¬Ðø¸³ÖµÓï¾ä²»ÄܳöÏÖÔÚ¹ý³Ì¿éÀï¡£

f.¶à¸öÁ¬Ðø¸³ÖµÓï¾äÖ®¼äÊDz¢ÐйØÏµ£¬Òò´ËÓëλÖÃ˳ÐòÎ޹ء£

¶þ.ÐÐΪ¼¶½¨Ä£

´Óµç·ÍⲿÐÐΪµÄ½Ç¶È¶ÔÆä½øÐÐÃèÊö£¬Òò´ËÐÐΪ¼¶½¨Ä£ÊÇ´ÓÒ»¸ö²ã´ÎºÜ¸ßµÄ³éÏó½Ç¶ÈÀ´±íʾµç·µÄ¡£ÐÐΪ½¨Ä£Ò²¿ÉÒÔÓÃÀ´Éú³É·ÂÕæ²âÊÔÐźš£

2.1 ¹ý³ÌÓï¾ä

2.1.1£®initial¹ý³ÌÓï¾ä

initial¹ý³ÌÓï¾äµÄÓï·¨¸ñʽΪ£º

initial
begin
Óï¾ä1£»
Óï¾ä2£»
£®£®£®
¡¡¡¡ Óï¾än£»
¡¡¡¡ end

a.ͨ³£ÓÃÓÚ·Âտģ¿éÖжԼ¤ÀøÏòÁ¿ÃèÊö£¬»òÓÃÓÚ¸ø¼Ä´æÆ÷±äÁ¿¸³³õÖµ¡£

b.·ÂÕæÊ±´ÓÄ£Äâ0ʱ¿Ì¿ªÊ¼Ö´ÐУ¬¶øÇÒÖ»Ö´ÐÐÒ»´Î¡£

c.Èô¶à¸öinitial¹ý³Ì¿é£¬Ôòͬʱ´Ó0ʱ¿Ì¿ªÊ¼²¢ÐÐÖ´Ðеġ£

2.1.2£®always¹ý³ÌÓï¾ä

Óï·¨¸ñʽÊÇ£º

always@(<Ãô¸ÐʼþÁбí>)

Óï¾ä¿é;

a.Ïà¶ÔÓÚinitial¹ý³ÌÓï¾ä£¬always¹ý³ÌÓï¾äÖ»ÒªÂú×ãalwaysºóÃæµÄÃô¸ÐʼþÁÐ±í£¬¾ÍÖ´ÐÐÓï¾ä¿é¡£

b.posedgeºÍnegedgeÃèÊöÐźŵÄÉÏÉýÑØºÍϽµÑØ¡£

×¢Òâ;

a.ÔÚ¹ý³ÌÓï¾ä(initialºÍalways)ÖУ¬±»¸³ÖµÐźűØÐ붨ÒåΪ¡°reg¡±ÀàÐÍ¡£

b.×éºÏµç·½øÐÐÃèÊöʱ£¬ÐèÒª°ÑÈ«²¿µÄÊäÈëÐźÅÁÐÈëÃô¸ÐÐźÅÁбí

c.ʱÐòµç·½øÐÐÃèÊöʱ£¬ÐèÒª°Ñʱ¼äÐźźͲ¿·ÖÊäÈëÐźÅÁÐÈëÃô¸ÐÐźÅÁÐ±í¡£

2.2 Óï¾ä¿é

µ±Óï¾äÊý³¬¹ýÒ»Ìõʱ£¬ÐèÒª²ÉÓÃÓï¾ä¿é¡£

Óï¾ä¿éÓÉ¿é±êʶ·ûbegin-end»òfork-join½ç¶¨µÄÒ»×éÐÐΪÃèÊöÓï¾ä¡£

2.2.1. ´®ÐÐÓï¾ä¿é

begin-end£¬¿ÉÒÔÓÃÓÚ¿É×ۺϵç·³ÌÐòºÍ·ÂÕæ²âÊÔ³ÌÐò¡£

a. ´®ÐÐÓï¾ä¿éÖеÄÿÌõÓï¾äÖðÌõÖ´ÐС£ÑÓ³Ùʱ¼äÏà¶ÔÓÚǰһÌõÓï¾äÖ´ÐнáÊøÊ±¼ä¡£

b. ´®ÐÐÓï¾ä¿éµÄÆðʼִÐÐʱ¼ä¾ÍÊÇ´®ÐÐÓï¾ä¿éÖеÚÒ»ÌõÓï¾ä¿ªÊ¼Ö´ÐеÄʱ¼ä£»´®ÐÐÓï¾ä¿éµÄ½áÊøÊ±¼ä¾ÍÊÇ¿éÖÐ×îºóÒ»ÌõÓï¾äÖ´ÐнáÊøµÄʱ¼ä¡£

2.2.2. ²¢ÐÐÓï¾ä¿é

fork--join,Ö»ÄÜÓÃÓÚ·ÂÕæ²âÊÔ³ÌÐò

²¢ÐÐÓï¾ä¿éµÄÌØµã£º

a. ¿éÄÚÓï¾äÊÇͬʱִÐе쬼´³ÌÐòÁ÷³Ì¿ØÖÆÒ»½øÈëµ½¸Ã²¢ÐÐÓï¾ä¿é£¬¿éÄÚÓï¾äÔòͬʱ¿ªÊ¼Ö´ÐС£

b.¿éÄÚÿÌõÓï¾äµÄÑÓ³Ùʱ¼äÊÇÏà¶ÔÓÚ³ÌÐòÁ÷³Ì¿ØÖƽøÈëµ½¿éÄڵķÂÕæÊ±¼äµÄ¡£

1) ²ÉÓô®ÐÐÓï¾ä¿é£º

module wave_tb1;
reg wave;
¡¡ parameter T=10;
¡¡ initial
¡¡ begin
¡¡¡¡ wave=0;
¡¡¡¡ #T wave=1;
¡¡¡¡ #T wave=0;
#T wave=1;
¡¡¡¡ #T wave=0;
¡¡¡¡ #T wave=1;
¡¡ end
endmodule

(2) ²ÉÓò¢ÐÐÓï¾ä¿é£º

module wave_tb2;
¡¡¡¡reg wave;
¡¡¡¡parameter T=10;
¡¡¡¡initial
fork
¡¡¡¡ wave=0;
¡¡¡¡ #T wave=1;
¡¡¡¡ #(2*T) wave=0;
¡¡¡¡ #(3*T) wave=1;
¡¡¡¡ #(4*T) wave=0;
¡¡¡¡ #(5*T) wave=1;
¡¡¡¡ join
¡¡¡¡endmodule

2.3 ¹ý³Ì¸³ÖµÓï¾ä

¹ý³Ì¿éÖеĸ³ÖµÓï¾ä³ÆÎª¹ý³Ì¸³ÖµÓï¾ä¡£

¹ý³ÌÐÔ¸³ÖµÊÇÔÚinitialÓï¾ä»òalwaysÓï¾äÄڵĸ³Öµ£¬ËüÖ»ÄܶԼĴæÆ÷Êý¾ÝÀàÐ͵ıäÁ¿¸³Öµ¡£

¹ý³Ì¸³ÖµÓï¾äÓÐ×èÈû¸³ÖµÓï¾äºÍ·Ç×èÈû¸³ÖµÓï¾äÁ½ÖÖ¡£

2.3.1. ×èÈû¸³ÖµÓï¾ä

×èÈû¸³ÖµÓï¾äµÄ²Ù×÷·ûºÅΪ¡°=¡±£¬ÆäÓï·¨¸ñʽÊÇ£º

±äÁ¿?=?±í´ïʽ£»

ÀýÈ磺¡¡b = a;

µ±Ò»¸öÓï¾ä¿éÖÐÓжàÌõ×èÈû¸³ÖµÓï¾äʱ£¬Èç¹ûÇ°ÃæµÄ¸³ÖµÓï¾äûÓÐÍê³É£¬ÔòºóÃæµÄÓï¾ä¾Í²»Äܱ»Ö´ÐУ¬·Â·ð±»×èÈûÁËÒ»Ñù£¬Òò´Ë³ÆÎª×èÈû¸³Öµ·½Ê½¡£

×èÈû¸³ÖµÓï¾äµÄÌØµã£º

(1) ÔÚ´®ÐÐÓï¾ä¿éÖУ¬Ë³ÐòÖ´ÐУ»ÔÚ²¢ÐÐÓï¾ä¿éÖÐ,ͬʱִÐУ¬Ã»ÓÐÏȺóÖ®·Ö¡£

(2) Ö´ÐÐ×èÈû¸³ÖµÓï¾äµÄ˳ÐòÊÇ£¬ÏȼÆËãµÈºÅÓҶ˱í´ïʽµÄÖµ£¬È»ºóÁ¢¿Ì½«¼ÆËãµÄÖµ¸³¸ø×ó±ßµÄ±äÁ¿£¬Óë·ÂÕæÊ±¼äÎ޹ء£

2.3.2. ·Ç×èÈû¸³ÖµÓï¾ä

·Ç×èÈû¸³ÖµÓï¾äµÄ²Ù×÷·ûºÅΪ¡°<=¡±£¬ÆäÓï·¨¸ñʽÊÇ£º

±äÁ¿<=±í´ïʽ£»

ÀýÈ磺b?<= a;

Èç¹ûÔÚÒ»¸öÓï¾ä¿éÖÐÓжàÌõ·Ç×èÈû¸³ÖµÓï¾ä£¬ÔòºóÃæÓï¾äµÄÖ´Ðв»»áÊܵ½Ç°ÃæÓï¾äµÄÏÞÖÆ£¬Òò´Ë³ÆÎª·Ç×èÈû¸³Öµ·½Ê½¡£

·Ç×èÈû¸³ÖµÓï¾äµÄÌØµã£º

(1) ÔÚ´®ÐÐÓï¾ä¿éÖУ¬Ö´ÐÐûÓÐÏȺóÖ®·Ö,¸÷ÌõÓï¾ä²¢ÐÐÖ´ÐС£

(2) Ö´ÐзÇ×èÈû¸³ÖµÓï¾äµÄ˳ÐòÊÇ£¬ÏȼÆËãÓҶ˱í´ïʽµÄÖµ£¬È»ºóµÈ´ýÑÓ³Ùʱ¼äµÄ½áÊø£¬ÔÙ½«¼ÆËãµÄÖµ¸³¸ø×ó±ßµÄ±äÁ¿

Ò»°ãÇé¿öÏÂ×éºÏÂß¼­µç·ÓÃ×èÈû¸³Öµ£¬Ê±ÐòÂß¼­µç·Ó÷Ç×èÈû¸³Öµ¡£

ÀýÌ⣺

a.³ÌÐò1

module block1(din,clk,out1,out2);¡¡¡¡
input din,clk;¡¡¡¡
output out1,out2;¡¡¡¡
reg out1,out2;¡¡¡¡
always@(posedge clk)¡¡¡¡
begin
out1=din;¡¡¡¡
out2=out1;¡¡¡¡
end
endmodule

³ÌÐò1µÄµç·½á¹¹:

b.³ÌÐò2

module non_block1(din,clk,out1,out2);¡¡¡¡
input din,clk;¡¡¡¡
output out1,out2;¡¡¡¡
reg out1,out2;
always@(posedge clk)¡¡¡¡
begin¡¡¡¡
out1<=din;¡¡¡¡
out2<=out1;¡¡¡¡
end
endmodule

×¢Ò⣺´Ë´¦µÄout2Ϊout1ÉÏÒ»½×¶ÎµÄÖµ£¬²»ÊÇ´Ë´¦out1µÄÖµ¡£

³ÌÐò2µÄµç·½á¹¹ :

c.½«³ÌÐò£¨2£©¸ÄΪ×èÈû¸³ÖµÓï¾ä

module block2(din,clk,out1,out2);¡¡¡¡
input din,clk;¡¡¡¡
output out1,out2;¡¡¡¡
reg out1,out2;¡¡¡¡
always@(posedge clk)¡¡¡¡
begin¡¡¡¡
out2=out1;
out1=din;¡¡¡¡
end¡¡
endmodule

2.4 ¹ý³ÌÁ¬Ðø¸³ÖµÓï¾ä£¨Á˽⣩

¹ý³ÌÁ¬Ðø¸³ÖµÓï¾ä¿ÉÒÔÔÚalwaysºÍinitial¹ý³ÌÓï¾äÖжÔÁ¬ÏßÐͺͼĴæÆ÷ÐͱäÁ¿ÀàÐͽøÐи³Öµ²Ù×÷¡£

¹ý³ÌÁ¬Ðø¸³Öµ²»Äܹ»¶Ô¼Ä´æÆ÷ÐͱäÁ¿½øÐÐλ²Ù×÷£¬Ö»ÄÜÕûÌ帳ֵ¡£

ÔÚVerilog HDLÖУ¬¹ý³ÌÁ¬Ðø¸³ÖµÓï¾äÓÐÁ½ÖÖÀàÐÍ£º¸³Öµ¡¢ÖØÐ¸³ÖµÓï¾ä(assign¡¢deassign)ºÍÇ¿ÖÆ¡¢ÊÍ·ÅÓï¾ä(force¡¢release)¡£

a.¸³ÖµÓï¾äºÍÖØÐ¸³ÖµÓï¾ä

assignºÍdeassignÓï¾ä¹¹³ÉÁËÒ»Àà¹ý³ÌÐÔÁ¬Ðø¸³ÖµÓï¾ä£¬Ö»ÄÜÓÃÓڶԼĴæÆ÷ÀàÐͱäÁ¿µÄÁ¬Ðø¸³Öµ²Ù×÷.

b.Ç¿ÖÆÓï¾äºÍÊÍ·ÅÓï¾ä

forceºÍreleaseÓï¾äÓëassignºÍdeassignÓï¾äÀàËÆ£¬Ò²ÊÇÒ»ÖÖ¹ý³ÌÁ¬Ðø¸³ÖµÓï¾ä¡£ÄܶԼĴæÆ÷ÀàÐͱäÁ¿ºÍÏßÍøÀàÐÍÊý¾Ý½øÐвÙ×÷¡£Ö÷ÒªÓÃÓÚ·ÂÕæ²âÊÔ£¬±ãÓÚ¶ÔijÖÖÐźŽøÐÐÁÙʱÐԵĸ³ÖµºÍ²âÊÔ¡£

×¢Ò⣺Á¬Ðø¸³ÖµÓï¾äΪÊý¾ÝÁ÷½¨Ä££¬·ÖΪÏÔʽºÍÒþʽÁ¬Ðø¸³Öµ¡£

2.5 Ìõ¼þ·ÖÖ§Óï¾ä

Verilog HDLµÄÌõ¼þ·ÖÖ§Óï¾äÓÐÁ½ÖÖ£ºifÌõ¼þ·ÖÖ§Óï¾äºÍcaseÌõ¼þ·ÖÖ§Óï¾ä¡£

1£®ifÌõ¼þ·ÖÖ§Óï¾ä

Ìõ¼þÓï¾äÖ»ÄÜÔÚinitialºÍalwaysÓï¾äÒýµ¼µÄÓï¾ä¿é(begin-end)ÖÐʹÓã¬Ä£¿éµÄÆäËü²¿·Ö¶¼²»ÄÜʹÓá£

×¢Ò⣺

ÈôΪ0¡¢x¡¢z£¬Ôò°´¡°¼Ù¡±´¦Àí£»ÈôΪ1£¬Ôò°´¡°Õ桱´¦Àí£¬Ö´ÐÐÖ¸¶¨µÄÓï¾ä¿é¡£

ÀýÈ磺

if(a) µÈ¼ÛÓÚ if(a==1)

if(!a) µÈ¼ÛÓÚ if(a!=1)

2£®caseÌõ¼þ·ÖÖ§Óï¾ä

Ïà¶ÔÓÚifÓï¾äÖ»ÓÐÁ½¸ö·ÖÖ§¶øÑÔ£¬caseÓï¾äÊÇÒ»ÖÖ¿ÉʵÏÖ¶à··ÖÖ§Ñ¡Ôñ¿ØÖƵÄÓï¾ä¡£

Ò»°ãµÄ£¬caseÓï¾ä¶àÓÃÓÚ¶àÌõ¼þÒëÂëµç·Éè¼Æ£¬ÈçÃèÊöÒëÂëÆ÷¡¢Êý¾ÝÑ¡ÔñÆ÷¡¢×´Ì¬»ú¼°Î¢´¦ÀíÆ÷µÄÖ¸ÁîÒëÂëµÈ¡£

µ±ÓÃcaseÓï¾ä¶Ô¿ØÖƱí´ïʽºÍÆäºóµÄÖµ½øÐбȽÏʱ£¬±ØÐëÊÇÒ»ÖÖÈ«µÈ±È½Ï£¬±ØÐë±£Ö¤Á½ÕߵĶÔӦλȫµÈ¡£

ÕæÖµ±í£º

×¢Ò⣺

£¨1£©defaultÑ¡ÏîÏ൱ÓÚif-elseÓï¾äÖеÄelse²¿·Ö£¬Ò»°ãÒªÓС£

(2)caseÓï¾äµÄËùÓбí´ïʽµÄÖµµÄλ¿í±ØÐëÏàµÈ¡£

ÀýÌ⣺ÓÃcaseÓï¾äÃèÊöBCDÊýÂë¹ÜÒëÂë¡£

module BCD_decoder(out,in);¡¡¡¡
output[6:0]out;¡¡¡¡
input[3:0]in;¡¡¡¡
reg [6:0]out;¡¡¡¡
always@(in)¡¡¡¡
begin¡¡¡¡
case(in)¡¡¡¡
4'd0:out=7'b1111110; //4'd0±íʾ4λʮ½øÖÆ£¬ÊýֵΪ0
4'd1:out=7'b0110000;¡¡¡¡
4'd2:out=7'b1101101;¡¡¡¡
4'd3:out=7'b1111001;¡¡¡¡¡¡
4'd4:out=7'b0110011;¡¡¡¡
4'd5:out=7'b1011011;
4'd6:out=7'b1011111;¡¡¡¡
4'd7:out=7'b1110000;¡¡¡¡
4'd8:out=7'b1111111;¡¡¡¡
4'd9:out=7'b1111011;
default:out=7'bx;¡¡¡¡
endcase¡¡
endendmodule

³ýÁËcase·ÖÖ§Óï¾äÒÔÍ⣬»¹ÓÐcasez¡¢casexÕâÁ½ÖÖ¹¦ÄÜÀàËÆµÄÌõ¼þ·ÖÖ§Óï¾ä.ÆäÕæÖµ±í£º

ÔÚcasezÓï¾äÖУ¬ÓÐһλµÄÖµÊÇz£¬¼´ÈÏΪÕâһλµÄ±È½Ï½á¹ûÓÀÔ¶ÊÇÕæ¡£

¶øÔÚcasexÓï¾äÖУ¬Ôò°ÑÕâÖÖ´¦Àí·½Ê½½øÒ»²½À©Õ¹µ½¶ÔxµÄ´¦Àí£¬¼´Èç¹û±È½ÏµÄË«·½(¿ØÖƱí´ïʽÓëÖµÏî)ÓÐÒ»±ßµÄijһλµÄÖµÊÇz»òx£¬ÄÇôÕâһλµÄ±È½Ï¾Í²»Ó迼ÂÇ¡£

2.6 Ñ­»·Óï¾ä

Verilog HDLÖй涨ÁËËÄÖÖÑ­»·Óï¾ä£¬·Ö±ðÊÇforever¡¢repeat¡¢whileºÍforÑ­»·Óï¾ä¡£¶àÓÃÓÚ²âÊÔ·ÂÕæ³ÌÐòÉè¼Æ¡£

1£®foreverÑ­»·Óï¾ä

foreverÓï¾äµÄÓï·¨¸ñʽÊÇ£º

forever Óï¾ä»òÓï¾ä¿é£»

foreverÑ­»·Óï¾äÁ¬Ðø²»¶ÏµØÖ´ÐкóÃæµÄÓï¾ä»òÓï¾ä¿é£¬³£ÓÃÀ´²úÉúÖÜÆÚÐԵIJ¨ÐΣ¬×÷Ϊ·ÂÕæ¼¤ÀøÐźš£

alwaysÓï¾ä¿É¶ÀÁ¢Ð´ÔÚ³ÌÐòÖС£

µ«foreverÔÚÓÚ²»ÄܶÀÁ¢Ð´ÔÚ³ÌÐòÖС£Ò»°ãÓÃÔÚinitial¹ý³ÌÓï¾äÖУ¬Èç¹ûÔÚforeverÓï¾äÖÐûÓмÓÈëʱÑÓ¿ØÖÆ£¬foreverÓï¾ä½«ÔÚ0ʱÑÓºóÎÞÏÞÑ­»·ÏÂÈ¥¡£

//Óà foreverÓï¾ä²úÉúʱÖÓÐźš£
module forever_tb;¡¡¡¡
reg clock;¡¡¡¡
initial¡¡¡¡
begin¡¡¡¡
clock=0;¡¡¡¡
forever #50 clock=~clock;¡¡¡¡
end
endmodule

2£®repeatÑ­»·Óï¾ä

Óï·¨¸ñʽÊÇ£º

repeat(Ñ­»·´ÎÊý±í´ïʽ)

Óï¾ä»òÓï¾ä¿é(Ñ­»·Ìå)£»

ÆäÖУ¬¡°Ñ­»·´ÎÊý±í´ïʽ¡±ÓÃÓÚÖ¸¶¨Ñ­»·´ÎÊý£¬Ëü±ØÐëÊÇÒ»¸ö³£Êý¡¢Ò»¸ö±äÁ¿»òÕßÒ»¸öÐźš£

Èç¹ûÑ­»·´ÎÊýÊDZäÁ¿»òÕßÐźţ¬ÔòÑ­»·´ÎÊýÊÇÑ­»·¿ªÊ¼Ö´ÐÐʱ±äÁ¿»òÕßÐźŵÄÖµ£¬¶ø²»ÊÇÑ­»·Ö´ÐÐÆÚ¼äµÄÖµ¡£

//ʹÓÃrepeatÑ­»·Óï¾ä²úÉú¹Ì¶¨ÖÜÆÚÊýµÄʱÖÓÐźš£¡¡
module repeat_tb;¡¡¡¡
reg clock;¡¡¡¡
initial¡¡¡¡
begin¡¡¡¡
clock=0;¡¡¡¡
repeat(8) clock=~clock;¡¡¡¡
end¡¡
endmodule

3£®whileÑ­»·Óï¾ä

Óï·¨¸ñʽÊÇ£º

while(Ìõ¼þ±í´ïʽ) Óï¾ä»òÓï¾ä¿é£»

ÆäÖУ¬¡°Ìõ¼þ±í´ïʽ¡±±íʾѭ»·ÌåµÃÒÔ¼ÌÐøÖØ¸´Ö´ÐÐʱ±ØÐëÂú×ãµÄÌõ¼þ£¬Ëü³£³£ÊÇÒ»¸öÂß¼­±í´ïʽ¡£ÔÚÿһ´ÎÖ´ÐÐÑ­»·Ìå֮ǰ¶¼Òª¶ÔÕâ¸öÌõ¼þ±í´ïʽÊÇ·ñ³ÉÁ¢½øÐÐÅжϡ£

//ʹÓÃwhileÓï¾ä²úÉúʱÖÓÐźš£
module while_tb;
¡¡¡¡ reg clock;
¡¡¡¡ initial
¡¡¡¡ begin¡¡¡¡
clock=0;¡¡¡¡
while(1)¡¡¡¡
#50 clock=~clock;¡¡¡¡
end
endmodule

4£®forÑ­»·Óï¾ä

Óï·¨¸ñʽÊÇ£º

for(Ñ­»·±äÁ¿¸³³õÖµ£»Ñ­»·½áÊøÌõ¼þ£»Ñ­»·±äÁ¿ÔöÖµ)

Óï¾ä¿é£»¡¡¡¡

forÓï¾äµÄÖ´Ðйý³ÌÊÇ£ºÏȸø¡°Ñ­»·±äÁ¿¸³³õÖµ¡±£¬È»ºóÅжϡ°Ñ­»·½áÊøÌõ¼þ¡±£¬ÈôÆäÖµÎªÕæ£¬ÔòÖ´ÐÐforÑ­»·Óï¾äÖÐÖ¸¶¨µÄÓï¾ä¿é£¬È»ºó½øÐС°Ñ­»·±äÁ¿ÔöÖµ¡±²Ù×÷£¬ÕâÒ»¹ý³Ì½øÐе½Ñ­»·½áÊøÌõ¼þÂú×ãʱ£¬forÑ­»·Óï¾ä½áÊø¡£

//ʹÓÃforÓï¾ä²úÉúʱÖÓÐźš£
module for_clk;
¡¡¡¡reg clk;
¡¡¡¡integer i;
¡¡¡¡initial¡¡¡¡
begin
¡¡¡¡ clk=0;
¡¡¡¡ for(i=0;i>=0;i=i+1)¡¡¡¡
#50 clk=~clk;¡¡¡¡
end
endmodule

Ñ­»·Óï¾äÒ²¿ÉÒÔÓÃÓÚ¿É×ۺϵç·µÄÉè¼Æ£¬µ±²ÉÓÃÑ­»·Óï¾ä½øÐмÆËãºÍ¸³ÖµµÄÃèÊöʱ£¬¿ÉÒÔ×ۺϵõ½Âß¼­µç·¡£

Èý.½á¹¹»¯½¨Ä£

½á¹¹ÃèÊö·½Ê½¾ÍÊǽ«Ó²¼þµç·ÃèÊö³ÉÒ»¸ö·Ö¼¶×ÓÄ£¿éϵͳ£¬Í¨¹ýÖð²ãµ÷ÓÃÕâЩ×ÓÄ£¿é¹¹³É¹¦Äܸ´ÔÓµÄÊý×ÖÂß¼­µç·ºÍϵͳµÄÒ»ÖÖÃèÊö·½Ê½¡£

½á¹¹ÃèÊö·½Ê½µÄÃèÊöÄ¿±êÊǵ緵IJã´Î½á¹¹£¬×é³ÉÓ²¼þµç·µÄ¸÷²ã¹¦Äܵ¥Ôª½«±»ÃèÊö³É¸÷¸ö¼¶±ðµÄ×ÓÄ£¿é¡£

¸ù¾ÝËùµ÷ÓÃ×ÓÄ£¿éµÄ²»Í¬³éÏ󼶱𣬿ÉÒÔ½«Ä£¿éµÄ½á¹¹ÃèÊö·½Ê½·Ö³ÉÈçÏÂÈýÀࣺ

(1) Ä£¿é¼¶½¨Ä££ºÍ¨¹ýµ÷ÓÃÓÉÓû§Éè¼ÆÉú³ÉµÄµÍ¼¶×ÓÄ£¿éÀ´¶ÔÓ²¼þµç·½á¹¹½øÐÐ˵Ã÷£¬ÕâÖÖÇé¿öϵÄÄ£¿éÓɵͼ¶Ä£¿éµÄʵÀý×é³É¡£

(2) Ãż¶½¨Ä££ºÍ¨¹ýµ÷ÓÃVerilog HDLÄÚ²¿µÄ»ù±¾Ãż¶Ôª¼þÀ´¶ÔÓ²¼þµç·µÄ½á¹¹½øÐÐ˵Ã÷£¬ÕâÖÖÇé¿öϵÄÄ£¿éÓÉ»ù±¾Ãż¶Ôª¼þµÄʵÀý×é³É¡£

(3) ¿ª¹Ø¼¶½¨Ä££ºÍ¨¹ýµ÷ÓÃVerilog HDLÄÚ²¿µÄ»ù±¾¿ª¹ØÔª¼þÀ´¶ÔÓ²¼þµç·µÄ½á¹¹½øÐÐ˵Ã÷£¬ÕâÖÖÇé¿öϵÄÄ£¿éÓÉ»ù±¾¿ª¹Ø¼¶Ôª¼þµÄʵÀý×é³É¡£

3.1 Ä£¿é¼¶½¨Ä£

Èç¹ûµ±Ç°Ä£¿é²»ÔÙ±»ÆäËüÄ£¿éËùµ÷Óã¬ÄÇôÕâ¸öÄ£¿éÒ»¶¨ÊÇËùνµÄ¶¥²ãÄ£¿é¡£ÔÚ¶ÔÒ»¸öÓ²¼þϵͳµÄÃèÊöÖУ¬±Ø¶¨ÓжøÇÒÖ»ÄÜÓÐÒ»¸ö¶¥²ãÄ£¿é¡£

1£®Ä£¿éµ÷Ó÷½Ê½

Ä£¿éµ÷ÓõĻù±¾Óï·¨¸ñʽÊÇ£º

Ä£¿éÃû<²ÎÊýÖµÁбí> ʵÀýÃû(¶Ë¿ÚÃûÁбí)£»

//Ò»¸ö¼òµ¥µÄÄ£¿éµ÷ÓõÄÀý×Ó¡£
module and_2(a,b,c); //2ÊäÈëÓëÃÅÄ£¿é¡¡¡¡
input a,b;¡¡¡¡
output c;¡¡¡¡
assign c=a&b;
endmodule


module logic(in1,in2,q); //¶¥²ãÄ£¿é¡¡¡¡
input in1,in2;¡¡¡¡
output q;¡¡¡¡
and_2 U1(in1,in2,q); //Ä£¿éµÄµ÷ÓÃ
endmodule

2£®Ä£¿é¶Ë¿Ú¶ÔÓ¦·½Ê½

1) ¶Ë¿ÚλÖöÔÓ¦·½Ê½

¶Ë¿ÚλÖöÔÓ¦·½Ê½ÊDZ»µ÷ÓõÄÄ£¿é°´ÕÕÒ»¶¨µÄ˳Ðò³öÏÖÔÚ¶Ë¿ÚÁ¬½Ó±íÖеÄÒ»ÖÖÄ£¿éµ÷Ó÷½Ê½£¬ÆäÓï·¨¸ñʽÊÇ£º

Ä£¿éÃû<²ÎÊýÖµÁбí> ʵÀýÃû(<ÐźÅÃû1>£¬<ÐźÅÃû2>£¬¡­£¬<ÐźÅÃûn>)£»

2) ¶Ë¿ÚÃû¶ÔÓ¦·½Ê½

Óï·¨¸ñʽÈçÏ£º

Ä£¿éÃû <²ÎÊýÖµÁбí> ʵÀýÃû(.¶Ë¿ÚÃû1<ÐźÅÃû1>£¬.¶Ë¿ÚÃû2<ÐźÅÃû2>£¬¡­£¬.¶Ë¿ÚÃûn<ÐźÅÃûn>)£»

3.2 Ãż¶½¨Ä£

3.3 ¿ª¹Ø¼¶½¨Ä£

 

 
   
4604 ´Îä¯ÀÀ       27
 
Ïà¹ØÎÄÕÂ

ÔÆ¼ÆËãµÄ¼Ü¹¹
¶ÔÔÆ¼ÆËã·þÎñÄ£ÐÍ
ÔÆ¼ÆËãºËÐļ¼ÊõÆÊÎö
Á˽âÔÆ¼ÆËãµÄ©¶´
 
Ïà¹ØÎĵµ

ÔÆ¼ÆËã¼ò½é
ÔÆ¼ÆËã¼ò½éÓëÔÆ°²È«
ÏÂÒ»´úÍøÂç¼ÆËã--ÔÆ¼ÆËã
ÈídzÎöÔÆ¼ÆËã
 
Ïà¹Ø¿Î³Ì

ÔÆ¼ÆËãÔ­ÀíÓëÓ¦ÓÃ
ÔÆ¼ÆËãÓ¦ÓÃÓ뿪·¢
CMMIÌåϵÓëʵ¼ù
»ùÓÚCMMI±ê×¼µÄÈí¼þÖÊÁ¿±£Ö¤
×îл¼Æ»®
DeepSeekÔÚÈí¼þ²âÊÔÓ¦ÓÃʵ¼ù 4-12[ÔÚÏß]
DeepSeek´óÄ£ÐÍÓ¦Óÿª·¢Êµ¼ù 4-19[ÔÚÏß]
UAF¼Ü¹¹ÌåϵÓëʵ¼ù 4-11[±±¾©]
AIÖÇÄÜ»¯Èí¼þ²âÊÔ·½·¨Óëʵ¼ù 5-23[ÉϺ£]
»ùÓÚ UML ºÍEA½øÐзÖÎöÉè¼Æ 4-26[±±¾©]
ÒµÎñ¼Ü¹¹Éè¼ÆÓ뽨ģ 4-18[±±¾©]
 
×îÐÂÎÄÕÂ
»ùÓÚFPGAµÄÒì¹¹¼ÆËãÔÚ¶àýÌåÖеÄÓ¦ÓÃ
ÉîÈëLinuxÄں˼ܹ¹¡ª¡ª¼ò½éÓë¸ÅÊö
LinuxÄÚºËϵͳ¼Ü¹¹½éÉÜ
dzÎöǶÈëʽCÓÅ»¯¼¼ÇÉ
½ø³Ì¼äͨÐÅ£¨IPC£©½éÉÜ
×îпγÌ
ǶÈëʽLinuxÇý¶¯¿ª·¢
´úÂëÕû½àÖ®µÀ-̬¶È¡¢¼¼ÒÕÓëϰ¹ß
ǶÈëʽÈí¼þ²âÊÔ
ǶÈëʽC¸ßÖÊÁ¿±à³Ì
ǶÈëʽÈí¼þ¿É¿¿ÐÔÉè¼Æ
³É¹¦°¸Àý
ij¾ü¹¤Ëù ǶÈëʽÈí¼þ¼Ü¹¹
Öк½¹¤ÒµÄ³Ñо¿Ëù ǶÈëʽÈí¼þ¿ª·¢Ö¸ÄÏ
ij¹ìµÀ½»Í¨ ǶÈëʽÈí¼þ¸ß¼¶Éè¼ÆÊµ¼ù
ÉîÛÚ Ç¶ÈëʽÈí¼þ¼Ü¹¹Éè¼Æ¡ª¸ß¼¶Êµ¼ù
ijÆóÒµ »ùÓÚIPDµÄǶÈëʽÈí¼þ¿ª·¢