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

s15: begin led_r=8b10100101; state=s0;end default: begin led_r=8b11111111;state=s0;end endcase end

endmodule

16¡¢³¬Ç°½øÎ»¼Ó·¨Æ÷µÄverilog hdlÃèÊö: module add_ahead (sum,cout,a,b,cin); input[7:0] a,b; input cin;output[7:0] sum; output cout;wire[7:0] g,p; wire[7:0] c,sum; assign g[0]=a[0]b[0]; assign p[0]=a[0]|b[0]; assign c[0]=cin;

assign sum[0]=g[0]^p[0]^c[0]; assign g[1]=a[1]b[1]; assign p[1]=a[1]|b[1];

assign c[1]=g[0]|(p[0]cin);

assign sum[0]=g[0]^p[0]^c[0]; assign g[2]=a[2]b[2]; assign p[2]=a[2]|b[2];

assign c[2]=g[1]|(p[1]c[1]);

assign sum[2]=g[2]^p[2]^c[2]; assign g[3]=a[3]b[3]; assign p[3]=a[3]|b[3];

assign c[3]=g[2]|(p[2]c[2]);

assign sum[3]=g[3]^p[3]^c[3]; assign g[4]=a[4]b[4]; assign p[4]=a[4]|b[4];

assign c[4]=g[3]|(p[3]c[3]);

assign sum[4]=g[2]^p[2]^c[2]; assign g[5]=a[5]b[5]; assign p[5]=a[5]|b[5];

assign c[5]=g[4]|(p[4]c[4]);

assign sum[5]=g[5]^p[5]^c[5]; assign g[6]=a[6]b[6]; assign p[6]=a[6]|b[6];

assign c[6]=g[5]|(p[5]c[5]);

assign sum[6]=g[6]^p[6]^c[6]; assign g[7]=a[7]b[7]; assign p[7]=a[7]|b[7];

assign c[7]=g[6]|(p[6]c[6]);

assign sum[7]=g[7]^p[7]^c[7]; assign cout=g[7]|(p[7]c[7]); endmodule

17¡¢¿Î±¾227Ò³£º9.4 ÆæÊý·ÖƵÓëСÊý·ÖƵ

ÆæÊý·ÖƵµÄ·½·¨£ºÓÃÁ½¸ö¼ÆÊýÆ÷£¬Ò»¸öÓÉÊäÈëʱÖÓÉÏÉýÑØ´¥·¢£¬Ò»¸öÓÉÊäÈëʱÖÓϽµÑØ´¥·¢£¬×îºó½«Á½¸ö¼ÆÊýÆ÷µÄÊä³öÏà»ò£¬¼´¿ÉµÃµ½Õ¼¿Õ±ÈΪ50%µÄ·½²¨²¨ÐΡ£

СÊý·ÖƵµÄ·½·¨£º1)ÓÃÊý×ÖËøÏ໷ʵÏÖ¡£ÏÈÀûÓÃËøÏà»·µç·½«ÊäÈëʱÖÓ±¶Æµ£¬È»ºóÀûÓÃ·ÖÆµÆ÷¶ÔвúÉúµÄ¸ßƵÐźŽøÐÐ·ÖÆµµÃµ½ÐèÒªµÄʱÖÓÆµÂÊ¡£2)ÏÈÉè¼ÆÁ½¸ö²»Í¬·ÖƵ±ÈµÄÕûÊý·ÖƵÆ÷£¬È»ºóͨ¹ý¿ØÖÆÁ½ÖÖ·ÖÆµ±È³öÏֵIJ»Í¬´ÎÊýÀ´»ñµÃËùÐèµÄСÊý·ÖƵֵ£¬´Ó¶øÊµÏÖÆ½¾ùÒâÒåÉϵÄСÊý·ÖƵ¡£

żÊý´Î·ÖƵµÄ·½·¨£º±ÈÈç½øÐÐ2n´Î·ÖƵ£¬Ö»ÐèÔÚ¼ÆÊýµ½n-1ʱ£¬²¨Ðη­×ª¼´¿É£»»òÕßÔÚ×îºóÒ»¼¶¼ÓÒ»¸ö2·ÖƵÆ÷Ò²¿ÉʵÏÖ¡£