找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3847|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

錯誤使用派生時鐘對邏輯時序的影響

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:114320 發(fā)表于 2016-4-15 03:33 | 只看該作者 回帖獎勵 |倒序?yàn)g覽 |閱讀模式

項目代碼編譯后打印如下信息:

Info: Clock "CLK48M" has Internalfmax of 67.47 MHz between source register "GLUE_LGC:glue|MCLK" anddestination register "img_lgc:img|N2DSP" (period= 14.822 ns)

信號由MCLKN2DSP這條通道限定了時針的最高速度只能到67.47MHz。

查看相關(guān)代碼中存在如下代碼段:

always @( posedge CLK48M )

         begin

                   CLKDIV<= CLKDIV + 1;                            //clock divider

         end

always @(posedge CLKDIV[5])        

         begin

                   MCLKB3<= MCLK_EXT;

                   MCLKB2<= MCLKB3;

                   MCLKB<= MCLKB2;

                   MCLK<= MCLKB | MCLKB2 | MCLKB3;

         End

該代碼段是對MCLK_EXT做一個簡單的防抖處理,相當(dāng)于使用CLK48M衍生的一個時鐘CLKDIV[5]。

MCLK在其它模塊中又使用CLK48M系統(tǒng)時鐘做了一次鎖存,于是相當(dāng)于在兩個CLK48M時鐘之間要完成CLKDIV[5]的轉(zhuǎn)換,再用CLKDIV[5]的上升沿去觸發(fā)MCLK的轉(zhuǎn)換,再輸出到目的寄存器。此過程占用時間較長,而CLKDIV[5]所耗的時間顯然是多余的。

修改代碼后如下:

always @( posedge CLK48M )

         begin

                   CLKDIV<= CLKDIV + 1;                            //clock divider

                   if(CLKDIV == 6'b100000)

                            begin

                                     MCLKB3<= MCLK_EXT;

                                     MCLKB2<= MCLKB3;

                                     MCLKB<= MCLKB2;

                                     MCLK<= MCLKB | MCLKB2 | MCLKB3;

                            end

         end

兩個從邏輯功能上看是一樣的,但修改后因?yàn)橹皇褂?font face="Calibri">CLK48M時鐘,邏輯都是以CLK48M為觸發(fā)時鐘,省去了一級觸發(fā)器的延時,于是大大縮短了從源到目的寄存器的延時。提高了最高時鐘速率。編譯后打印CLK48M系統(tǒng)時鐘最高頻率信息如下:

Info: Clock "CLK48M" has Internalfmax of 77.08 MHz between source register "img_lgc:img|DATABUF[13]"and destination register "img_lgc:img|CAM_D[6]" (period= 12.974 ns)

可以看到CLK48M最高頻率可以達(dá)到77.08M,這個頻率是由"img_lgc:img|DATABUF[13]""img_lgc:img|CAM_D[6]"之間的路徑?jīng)Q定的。后面再繼續(xù)針對該網(wǎng)絡(luò)做優(yōu)化。

這種使用衍生時鐘的方法是很多人邏輯設(shè)計中存在的錯誤(因?yàn)閷r序影響非常嚴(yán)重,所以這里稱它為一個錯誤也不為過),因?yàn)楸容^有典型性,所以特意整理了一下,希望引起初級邏輯工程師的注意。



分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表