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