Êý×ÖϵͳÉè¼ÆÓëveriloghdl¿Îºó´ð°¸ ÏÂÔØ±¾ÎÄ

3)Éè¼ÆÓ빤ÒÕµÄÎÞ¹ØÐÔ£¬¿í·¶Î§µÄÃèÊöÄÜÁ¦£¬±ãÓÚ×éÖ¯´ó¹æÄ£¡¢Ä£¿é»¯µÄÉè¼Æ

2¡¢verilogÄ£¿éµÄ½á¹¹

Ä£¿éÉùÃ÷£º°üÀ¨Ä£¿éÃû×Ö¡¢Ä£¿éÊäÈë¡¢Êä³ö¶Ë¿ÚÁÐ±í£¬½áÊø¹Ø¼ü×ÖΪendmodule ¶Ë¿Ú¶¨Ò壺¸ñʽΪ£ºinput: ¶Ë¿ÚÃû1£¬¶Ë¿ÚÃû2?¶Ë¿ÚÃûn£»

output: ¶Ë¿ÚÃû1£¬¶Ë¿ÚÃû2?¶Ë¿ÚÃûn£» inout: ¶Ë¿ÚÃû1£¬¶Ë¿ÚÃû2?¶Ë¿ÚÃûn£»

3¡¢±êʶ·ûÊÇÓû§ÔÚ±à³Ìʱ¸øverilog¶ÔÏóÆðµÄÃû×Ö£¬Ä£¿é¡¢¶Ë¿ÚºÍʵÀýµÄÃû×Ö¶¼ÊDZêʶ·û¡£±êʶ·û¿ÉÒÔÊÇÈÎÒâÒ»×é×Öĸ¡¢Êý×ÖÒÔ¼°·ûºÅ¡°$¡±ºÍ¡°_¡±µÄ×éºÏ£¬µ«±êʶ·ûµÄµÚÒ»¸ö×Ö·û±ØÐëÊÇ×Öĸ£¨a-z£¬a-z£©»òÕßÊÇÏ»®Ïß¡°_¡±£¬±êʶ·û×¿É°üº¬1023¸ö×Ö·û£¬´ËÍ⣬±êʶ·ûÇø·Ö´óСд¡£

4¡¢ÕûÊýд·¨£º+/-sizeλ¿í¡¯base½øÖÆvalueÊý×Ö 1¡¢ Ôڽϳ¤µÄÊýÖ®¼ä¿ÉÓÃÏ»®Ïß·Ö¿ª

2¡¢ µ±Êý×Ö²»ËµÃ÷λ¿íʱ£¬Ä¬ÈÏֵΪ32λ

3¡¢ x»ò£¨z£©ÔÚ¶þ½øÖÆÖдú±í1λx£¨»òz£©£¬Ôڰ˽øÖÆÖдú±í3룬ÔÚ16½øÖÆÖдú±í4λ

4¡¢ Èç¹ûûÓж¨ÒåÒ»¸öÕûÊýµÄλ¿í£¬Æä¿í¶ÈΪÏàÓ¦ÖµÖж¨ÒåµÄλÊý¡£ 5¡¢ Èç¹û¶¨ÒåµÄλ¿í±Èʵ¼ÊµÄλÊý³¤£¬Í¨³£ÔÚ×ó±ßÌî0²¹Î»£¬µ«Èç¹û×î×ó±ßһλΪx»òz£¬¾ÍÏàÓ¦µÄÓÃx»òz×ó±ß²¹Î»¡£

6¡¢ ¡°£¿¡±ÊǸß×è̬zµÄÁíÒ»ÖÖ±íʾ·ûºÅ£¬ÔÚÊý×ֵıíʾÖУ¬×Ö·û¡°£¿¡±ºÍzÊÇÍêÈ«µÈ¼ÛµÄ£¬¿ÉÏ໥´úÌæ¡£

7¡¢ ÕûÊý¿ÉÒÔ´ø·ûºÅ£¬²¢ÇÒÕý¸ººÅӦдÔÚ×î×ó±ß£¬¸ºÊýͨ³£±íʾΪ¶þ½øÖÆ ²¹ÂëµÄÐÎʽ¡£

8¡¢ µ±Î»¿íÓë½øÖÆÈ±Ê¡Ê±±íʾµÄÊÇ10½øÖÆÊý

9¡¢ ÔÚλ¿íºÍ¡®Ö®¼ä£¬ÒÔ¼°½øÖƺÍÊýÖµÖ®¼äÔÊÐí³öÏÖ¿Õ¸ñ£¬µ«¡¯ºÍ½øÖÆÖ®¼äÒÔ¼°ÊýÖµÖ®¼äÊDz»ÄܳöÏÖ¿Õ¸ñµÄ¡£ ÒªÇóÕÆÎÕÕûÊýÕýÈ·µÄÊéд·½Ê½¡£ 5¡¢ÏòÁ¿£º¿í¶È´óÓÚ1λµÄ±äÁ¿£» ±êÁ¿£º¿í¶ÈΪ1λµÄ±äÁ¿¡£

¶¨Òå2¸ö8λregÐÍʸÁ¿£ºreg [7:0] ra, rb; 6¡¢ÔËËã·û

£¨1£©×¢Ò⣺Âß¼­ÔËËã·û£¬ÀýÈçÂß¼­Óë¡¢Âß¼­»ò||¡¢Âß¼­·Ç!£¬ÔËËã½á¹ûÊÇ1λµÄ¡£Èç¹û²Ù×÷Êý²»Ö¹1λµÄ»°£¬ÔòÓ¦½«²Ù×÷Êý×÷Ϊһ¸öÕû

ÌåÀ´¶Ô´ý£¬¼´Èç¹û²Ù×÷ÊýÈ«ÊÇ0£¬ÔòÏ൱ÓÚÂß¼­0£¬µ«Ö»ÒªÄ³Ò»Î»ÊÇ1£¬Ôò²Ù×÷Êý¾ÍÓ¦¸ÃÕûÌå¿´×÷Âß¼­1¡£

ÀýÈ磺Èôa = 4¡¯b0000, b = 4¡¯b0101£¬ÔòÓУº a b = 0;

£¨2£©Î»Æ´½ÓÔËËã·û£º{ }½«Á½¸ö»ò¶à¸öÐźŵÄijЩλƴ½ÓÆðÀ´

7¡¢initialÓï¾äºÍalwaysÓï¾äµÄÇø±ð:initialÓï¾ä³£ÓÃÓÚ·ÂÕæÖеijõʼ»¯£¬initial¹ý³Ì¿éÖеÄÓï¾äÖ»Ö´ÐÐÒ»´Î£¬²»´ø´¥·¢Ìõ¼þ£»always¿éÄÚµÄÓï¾äÔòÊDz»¶ÏÖØ¸´Ö´Ðеģ¬always¹ý³ÌÓï¾äÊÇ¿É×ۺϵ쬴øÓд¥·¢Ìõ¼þ¡£

8¡¢posedge:ÉÏÉýnegedge:Ͻµ ŪÇå³þͬ²½ºÍÒì²½µÄ¸ÅÄî¡£

ÀýÈ磺Èç¹ûnresetºÍnsetÊÇÒì²½£¬Ê±ÖÓclockÉÏÉýÑØ´¥·¢¡£ always @(posedge clk or posedge rst_n ) if (! rst_n ) q=0; else if(nset) q=1; else q=d;

9¡¢×èÈû¸³ÖµÓë·Ç×èÈû¸³ÖµµÄÇø±ð£º·Ç×èÈû¸³ÖµÔÚÕû¸ö¹ý³Ì¿é½áÊøÊ±²ÅÍê³É¸³Öµ²Ù×÷£»×èÈû¸³ÖµÔÚ¸ÃÓï¾ä½áÊøÊ±¾ÍÁ¢¼´Íê³É¸³Öµ²Ù×÷¡£ÔÚalways¹ý³Ì¿éÖУ¬×èÈû¸³Öµ¿ÉÒÔÀí½âΪ¸³ÖµÓï¾äÊÇ˳ÐòÖ´Ðе쬶ø·Ç×èÈû¸³Öµ¿ÉÒÔÀí½âΪ¸³ÖµÓï¾äÊDz¢·¢Ö´ÐеÄ. 10¡¢Ìõ¼þÓï¾ä£¬Ìõ¼þÓï¾äÒ²³Æ·ÖÖ§Óï¾ä¡£ 11¡¢Ë³ÐòÖ´ÐУº×èÈû¸³ÖµÓï¾ä£» ²¢·¢Ö´ÐÐ:·Ç×èÈû¸³ÖµÓï¾ä¡£

12¡¢ÓÃÐÐΪÓï¾äÉè¼ÆÒ»¸ö8λ¼ÆÊýÆ÷£¬Ã¿´ÎÔÚʱÖÓµÄÉÏÉýÑØ£¬¼ÆÊýÆ÷¼Ó1£¬µ±¼ÆÊýÆ÷Òݳöʱ£¬×Ô¶¯´ÓÁã¿ªÊ¼ÖØÐ¼ÆÊý¡£¼ÆÊýÆ÷ÓÐͬ²½¸´Î»¶Ë¡£

module count(count,reset,clk); input clk,reset; output clk,reset; output [7:0] count; reg count;

always @(posedge clk) if(reset==1) begin

count=8b0; end

else if (count=8b11111111)

begin

count=9b0; end else if begin

count=count+1; end

end module

13ÆæÅ¼Ð£Ñéλ²úÉúÆ÷µÄverilog hdlÃèÊö: module parity(evrn_bit,odd_bit,a);

input[7:0] a; output even_bit,odd_bit; assign even_bit=^a; //Éú³ÉżУÑéλ

assign odd_bit=~even_bit; //Éú³ÉÆæÐ£Ñéλ endmodule;

14¡¢¿Î±¾197Ò³£º8.2 ÓÐÏÞ״̬»úµÄverilogÃèÊö

²Î¿¼Àý8.3£¬Àý8.7£¬Ñ§»áÓÃÓÐÏÞ״̬»úÉè¼ÆÐòÁмì²âÆ÷¡£ module fsm_seq1111(x,z,clk,reset); input x,clk,reset; output reg z; reg[4:0] state;

parameter s0=¡¯d0,s1=¡¯d1,s2=¡¯d2,s3=¡¯d3,s4=¡¯d4; always @(posedge clk)

begin if(reset) begin state=s0;z=0; end elsecasex(state)

s0: begin if(x==0) begin state=s0;z=0;end elsebegin state=s1;z=0;end end

s1: begin if(x==0) begin state=s0;z=0;end elsebegin state=s2;z=0;end end

s2: begin if(x==0) begin state=s0;z=0;end elsebegin state=s3;z=0;end end

s3: begin if(x==0) begin state=s0;z=0;end elsebegin state=s4;z=1;end end

s4: begin if(x==0) begin state=s0;z=0;end elsebegin state=s4;z=1;end end default: state=s0; endcase end

endmodule

15¡¢×´Ì¬»úÉè¼ÆÁ÷Ë®µÆ:

module led_water(clk50m,rst,led); input clk50m; output[7:0] led; input rst;

wire clk_5hz; reg[7:0] led_r; reg[3:0] state; reg[23:0] count;

parameter s0=d0,s1=d1,s2=d2,s3=d3, s4=d4,s5=d5,s6=d6,s7=d7,

s8=d8,s9=d9,s10=d10,s11=d11,

s12=d12,s13=d13,s14=d14,s15=d15; always @(posedge clk50m) begin

if(count==10000000) begin count=1b0;end else

count=count+1b1; end

assign clk_5hz=count[23]; assign led=led_r;

always @(posedge clk_5hz) begin

if(!rst) state=s0; else case(state)

s0: begin led_r=8b01111111; state=s1;end s1: begin led_r=8b10111111; state=s2;end s2: begin led_r=8b11011111; state=s3;end s3: begin led_r=8b11101111; state=s4;end s4: begin led_r=8b11110111; state=s5;end s5: begin led_r=8b11111011; state=s6;end s6: begin led_r=8b11111101; state=s7;end s7: begin led_r=8b11111110; state=s8;end s8: begin led_r=8b11111100; state=s9;end s9: begin led_r=8b11111000; state=s10;end s10: begin led_r=8b11110000; state=s11;end s11: begin led_r=8b11100000; state=s12;end s12: begin led_r=8b11000000; state=s13;end s13: begin led_r=8b10000000; state=s14;end s14: begin led_r=8b00000000; state=s15;end