※ 引述《soonsin.bbs@bbs.mgt.ncu.edu.tw (窩耶)》之銘言:
請問一下 我有算過真值表
但是我不太曉得以下寫法是否有不同
process(clk)
begin
if clk'event and clk='1' then
D1<=D0;D0<=ext;
output<=((D0 and D1) or output) and (D0 or D1);
end if;
end process;
process(clk)
begin
if clk'event and clk='1' then
D1<=D0;D0<=ext;
pre_output<=output;
end if;
end process;
output<=((D0 and D1) or pre_output) and (D0 or D1);
真值表算出來可是不知道output是要擺在process裡面還外面耶
請各位高手解或一下 相信可能有觀念上的不清楚或不正確吧
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
以你的第一個寫法是 and or gate完的東西還會經過 D-tpe Flip Flop 敲過
第二個寫法則是 and or gate完的東西沒經過 D-type Flip Flop敲過....
如果這條path沒有timing上的問題 這二個寫法都ok...
如果有的話第一個寫法比較能check出(以STA跑)...
不過還是端看你output怎麼接給後面用....
不過以目前比較常看到的寫法是寫在process裡面...
或是以你第二個寫法 再加一個process敲output一次....
原因是現在的ic design 系統通常很大..怕就是你這個output訊號
clk沒敲到...造成我們在做timing check的時候沒check當它
結果tape out回來. 晶片不會動 就是因為它..那這樣頭就大了>!<....
So........
另外就是在FPGA中使用現成乘法指令要花多少clock時間呢
例子如下
process(clk)
begin
if clk'event and clk='1' then
output<=A*B;
end if;
end process;
A B為每一clock改變的變數 output這樣寫會出錯嗎
感覺乘法會花不少時間說 一個clock算的完嗎?????
請各位有經驗的高手教教我 感激
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
提供你一個idea 讓你去想這問題
D-FF--->Andgate--->Andgate..............*100--->D-FF
假設這一條path 為2個D-FF(D型正反器)中間接了100個 Andgate
如果假設一個Andgate delay 0.1ns 不考慮 wireload 還有其他delay的影響
則經過100個andgate 需要10ns 如果我的clk 跑100MHz勉強沒有timing問題
(算得完) 如果我clk跑 50MHz 則一定沒有timing的問題
如果跑200MHz則有timing問題.....
同理 你去看乘法器.. 以一個2bit*2bit的乘法器
如果adder是用ripper adder去兜出來的 你應該可以知critical path在哪裡
那一條path經過多少的 gate 則可以估計你這個乘法器需要多久時間才能
算完結果...懂了嗎???
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.230.209.47