ÄúÏÖÔÚµÄλÖ㺠Ö÷Ò³ > ǶÈëʽ´¦ÀíÆ÷ > FPGA > dz̸FPGAÑ§Ï°Ö®ÆæÝâ·ÖƵÌåÑé
±¾ÎÄËùÊô±êÇ©:
Ϊ±¾ÎÄ´´Á¢¸ö±êÇ©°É:

dz̸FPGAÑ§Ï°Ö®ÆæÝâ·ÖƵÌåÑé

À´Ô´£ºÍøÂçÕûÀí ÍøÂçÓû§·¢²¼£¬ÈçÓаæÈ¨ÁªÏµÍø¹Üɾ³ý¡¡2018-07-02¡¡

ǰ¼¸ÌìÔÚÒ»¼Ò×öÂß¼­Éè¼ÆµÄ¹«Ë¾Àï×öÁËÒ»µÀ±ÊÊÔÌ⣬ÓÐЩÐÄÈû¡£ÓÃVerilog HDLÃèÊöÈý·ÖƵµÄʵÏÖ¡£ËµÊµ»°£¬Ò»¿ªÊ¼ÎÒÊǾܾøµÄ¡£ÎÒ֮ǰ×ö¹ý·ÖƵʵÑ飬¼¸°ÙºÁÃëµÄLEDÉÁ˸£¬¿ØÖÆ·äÃùÆ÷·¢³ö²»Í¬ÒôƵ¶ÎµÄÉùÒô£¬¶¼ÊÇ·ÖÆµÊµÑéµÄÀý×Ó¡£ÏÖÔÚÏëÏ룬»ù±¾¶¼ÊÇżÊý·ÖƵ¡£


Ò»¿ªÊ¼ÎÒÊÇ6·ÖƵµÄ»ù´¡ÉÏ×öÁË2±¶ Ƶ£¬½á¹ûÃèÊöÄÚÈݹýÓÚ·±Ëö£¬ÒÔÖÂд×Åд×Å¾Í·ÅÆúÕõ´§£¬Ã»¾­Àú¹ýµÃ¶«Î÷ÊDZ಻³öÀ´µÄ¡£»ØÀ´ÔÚÍøÉÏÕÒµ½ÁËÐí¶à½â¾öÆæ¡¢Å¼ÊýµÄ·ÖƵʵÏÖ¡£ËµÊµ»°£¬ÀíÂÛ֪ʶ»¹ÊÇ±È ½Ï¶àµÄ£¬¾ÍÊÇ´úÂëʵÏÖÓÐЩÓû¸ÇÃÔÕã¬ÎÒ³­Ð´ÏÂÀ´ÑéÖ¤¼¸ºõ¶¼ÊÇ´íµÄ¡£ºÃÔÚÀíÂÛ֪ʶ·ÖÎö͸³¹£¬¶øºóÎÒ×Ô¼º³¢ÊÔ±àдÁËһϣ¬Ð´ÏÂ×÷Ϊ·ÖÏí¡£


żÊý·ÖƵ£¬ÀýÈç¶þ·ÖƵ£¬¼òµ¥½²¾ÍÊÇÒ»¸öʱÖÓÖÜÆÚµÄ¸ßµçÆ½ºÍÒ»¸öʱÖÓÖÜÆÚµÄµÍµçÆ½¡£Éèreg  cnt£¬Ä¬ÈÏһλ£¬Ã¿Ò»¸öʱÖÓÉÏÉýÑØ×Ô¼Ó1£¬ÔòcntµÄµçƽ±ä»¯¾Í¿ÉÒÔ×÷Ϊ¶þ·ÖƵÊä³ö¡£ÓÉ´Ë£¬Éèreg [3:0] cnt£¬Ôòcnt[1],cnt[2],cnt[3]¶ÔÓ¦4/8/16·ÖƵ¡£ÕâЩ²Ù×÷£¬ÎÒÃdz£³£ÔÚledÑÓʱ´¦ÀíÉÏÓõ½¡£



ÓïÑÔÃèÊöÈçÏ£º

module test2_1(clk,rst_n,clk_out2,clk_out4,clk_out8);

input clk;

input rst_n;

output clk_out2;

output clk_out4;

output clk_out8;


reg [2:0]cnt;

always@(posedge clk or negedge rst_n)

if(!rst_n)

cnt <= 3'd0;

else

cnt <= cnt +1'b1;

assign clk_out2 = cnt[0];

assign clk_out4 = cnt[1];

assign clk_out8 = cnt[2];

endmodule


ÁíÀàżÊý·ÖƵÈç6/10/12·ÖƵ£¬¿ÉÔÚǰ3/5/6¸öÕûÊýÖÜÆÚ´¦ÀíÊä³ö¸ß/µÍµçƽ£¬ºó3/5/6¸öÕûÊýÖÜÆÚÈ¡·´£¬²Ù×÷Ïà¶Ô¼òµ¥£¬¿ÉʵÏÖÊä³öΪռ¿Õ±ÈΪ1:1µÄ·ÖƵÐźš£Õ¼¿Õ±È²»µÈµÄÇé¿ö¾Í¸ü¼òµ¥¡£



¹Ø¼üÓïÑÔÃèÊöÈçÏ£º £¨N=6£©

if(cnt < N/2-1)begin

cnt <= cnt + 1'b1;

end

else begin

cnt <= 3'd0;

clk_out <= ~clk_out;

End


ÔÚÉè¼ÆÖУ¬ÎÒ´¦ÀíΪcnt < N/2,»òcntСÓÚµÈÓÚ N/2-1£¬½á¹ûʵÏÖ¾ùΪ8·ÖƵ¡£ÎÒ¿ªÊ¼·ÖÎöcnt < 3,ÄÇcnt¾ÍÖ»ÓÐÈ¡0,1£¬2ΪһÖÖ״̬µÄµç룬¼ÇÂúµ½3ʱ£¬µçλȡ·´£¬cntÇåÁã£¬ÖØ¸´Ö´Ðеõ½Ð§¹û¡£¶øÊÂʵÉÏcnt < N/2-1²ÅÕýÈ·¡£ÎÒѰ˼×ÅÕâÑù²»ÊÇÈ¡ÁË0¡¢1Á½´ÎÊýÂ𡣺óÀ´ÔÚÆæÊý·ÖƵÓöµ½ÀàËÆÎÊÌâ¡£


ÆæÊý·ÖƵռ¿Õ±ÈΪ1:1µÄʵÏֱȽϸ´ÔÓ£¬ÒÔ5·ÖƵΪÀý£¬ÎÒ²ÉÓÃÁ½¸ö¼ÆÊýÆ÷£¬Ò»¸ö¼ÆÊýÆ÷ÔÚʱÖÓÉÏÉýÑØ´¥·¢¼ÆÊý£¬ÁíÒ»¸ö¼ÆÊýÆ÷ÔÚʱÖÓϽµÑØ´¥·¢¼ÆÊý£¨»òclk_n = ~clk£©¡£¸÷×Ô¿ØÖƲúÉúÒ»¸ö5·ÖƵÐźţ¬µ÷½ÚÕ¼¿Õ±ÈΪ3£º2£¨ÈÝÒ×£©¡£µÚÒ»¸ö5·ÖƵ±ÈµÚ¶þ¸ö5·ÖƵ¿ì°ë¸öÖÜÆÚ£¬Á½¸öÐźÅÈ¡»ò£¬ÍêÃÀ½«Õ¼¿Õ±È·ÖÅäΪ1:1£¬Í¨Ë×µã˵£¬¾ÍÊÇ3-0.5 = 2+0.5¡£


´Ëʱ£¬ÎÒÒ²Óöµ½ÁËcnt < N-1ºÍcnt2 == (N-1)/2µÄÎÊÌ⣬ÓÈÆäÊÇcnt2 == (N-1)/2£¬±íÃæÉÏÈÃÎÒÎóÒÔΪÊÇÕ¼¿Õ±ÈΪ2:3£¬µ«ÊÂʵÉÏÊÇÐźÅÕ¼¿Õ±ÈΪ3:2¡£ºóÀ´ÔÚ·ÂÕæÖÐÎÒ¶àÌí¼ÓÁËcntµÄ¼ì²â£¬Ð§¹û¾ÍÃ÷ÏÔ¿´³öÀ´ÁË¡£¶ø¾¿Æä¸ùÔ´ÊÇalwaysÖÐclkÉÏÉýÑØ²ÉÑùÓ븳ֵ¸Ä±äÖ®¼äµÄÏȺó¹ØÏµ£¬¶øÕâÔÚºó·ÂÕæÖÐÂß¼­ÑÓʱÄÜÌåÏÖ³öÀ´¡£ÓïÑÔÃèÊö½Ï³¤£¬ÔÚ¸½Â¼ÖгÊÏÖ¡£




ÒòΪÉÏÉýÑØºÍ¸³Öµ¼¸ºõÒ»ÌõÏߣ¬ÎÒûÓлìÏýÊÇÏȲɼ¯»¹ÊÇÏȸ³Öµ£¬¶øÊÇ»á¾À½áÓÚ¶àËãÒ»¸öÖÜÆÚ»òÉÙËãÒ»¸öÖÜÆÚ¡£ÎÒ»¹·¢ÏÖ×Ô¼ºµÄÂß¼­Éè¼Æ²»ÊìÁ·µ¼ÖÂÓëÀíÏëЧ¹û»¹ÊÇÓвî¾àµÄ¡£µ÷ÊÔʱ£¬»¨ÔÚÂß¼­ÓÅ»¯µÄʱ¼ä½Ï³¤£¬ÁíÍâÔÚºó·ÂÕæÖÐcntʼÖÕΪZ̬£¬²»±ãÓÚÎҹ۲죬ÕâÊÇÎÒµÄÒÉ»ó£¬Ò²ÊǽÓÏÂÀ´Òª½â¾öµÄ°É¡£


ϲ»¶ÇëÊղطÖÏí±¾ÎÄ
&


µç×Ó¹¤³ÌʦµÄÁé¸ÐÉè¼ÆÖ®Ô´




µã»÷Ô­ÎÄ¿´¸ü¶àÎÄÕÂ



¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ ²é¿´ÆÀÂÛ »Ø¸´



ǶÈëʽ½»Á÷ÍøÖ÷Ò³ > ǶÈëʽ´¦ÀíÆ÷ > FPGA > dz̸FPGAÑ§Ï°Ö®ÆæÝâ·ÖƵÌåÑé
 Ê±ÖÓ ÊµÏÖ Å¼Êý

ÍøÕ¾µØÍ¼

Χ¹Û()