<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 實(shí)現拆分大組合邏輯的方法

實(shí)現拆分大組合邏輯的方法

作者: 時(shí)間:2010-06-20 來(lái)源:網(wǎng)絡(luò ) 收藏
圖1是很多為了提高系統時(shí)鐘采用的,但是沒(méi)有提供具體如何的實(shí)例。我覺(jué)得實(shí)例才是重要的。但我不明白在寫(xiě)代碼時(shí),如何知道這樣寫(xiě)會(huì )被綜合成一個(gè)很大的,一些簡(jiǎn)單的可以想到(比如大的計數器應該分成多個(gè)來(lái)做),但是更復雜的實(shí)在是不好理解。

圖1


可以通過(guò)流水線(xiàn)的方式分拆,這也是一種提高芯片速度的一種方式。 在邏輯中間插入寄存器,設計成流水。 很典型的例子就是調度器,如果做64調度器,可能中間的延時(shí)太長(cháng),不能滿(mǎn)足系統速度要求,這時(shí)候就可以做成一級16調度,一級4調度,來(lái)完成64調度的功能。

本文引用地址:http://dyxdggzs.com/article/151791.htm


用加法器做例子,設輸入ABCD輸出OUT 上半部分就是: out = A+B+C+D;
下半部分就是:
always @(posedge clk)
begin
sumreg1 = sum1;
sumreg2 = sum2;
sumreg3 = sum3; end
assign sum1 = A+B;
assign sum2 = C+D;
assign sum3 = sumrge1+sumreg2;
assign OUT = sumreg3;
通常建議使用下半部分的算法,如果可以使用流水線(xiàn)。


通常是這樣的,沒(méi)有例子看起來(lái)是不好理解,但是一有具體的例子就非常清楚了。我也來(lái)學(xué)著(zhù)給個(gè)計數器的例子計數255,如果用一個(gè)寄存器來(lái)計那么需要開(kāi)的深度為8的,如果為兩個(gè)那么只需容量為4的兩個(gè)寄存器,所需的邏輯較小,不知道對不對。
reg[3:0]ad1;
reg[3:0]ad2;
always @(posedge clk)
if(!rest)
begin
out=0;
ad1=0;
ad2=0;
end
else
if(ad1==15)
begin
ad2=ad2+1;
ad1=0;
end
else
if (ad2==15)
begin out=1;
end
else
ad1=ad1+1;
ad1加滿(mǎn)后去觸發(fā)ad2加。


always @(posedge clk)
if (reset)
counter0 = 0;
else
counter0 = counter0 + 1;
always @(posedge clk)
begin
counterreg0 = counter0;
if (counterreg0 == 4'b1111)
outreg0 = 1;
else
outreg0 = 0;
end
assign counter1 = counterreg1 + outreg0;
always @(posedge clk)
begin
counterreg1 = counter1;
if (counterreg1 == 4'b1111)
out = 1;
else
out = 0;
end


lflhust 寫(xiě)的程序沒(méi)有達到邏輯拆分的目的, 原因很簡(jiǎn)單, 那個(gè)程序綜合后生成的電路的流水線(xiàn)深度還是1。 zf0579那個(gè)程序的流水線(xiàn)深度才是2,達到了拆分的目的。 作邏輯的出發(fā)點(diǎn)不是寫(xiě)HDL代碼,而是在寫(xiě)代碼前腦子里面要有 你需要的邏輯的電路結構。

作邏輯的出發(fā)點(diǎn)不是寫(xiě)HDL代碼,而是在寫(xiě)代碼前腦子里面要有。你需要的邏輯的電路結構。



關(guān)鍵詞: 方法 邏輯 組合 拆分 實(shí)現

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>