今天在看這本書《vhdl數位電路設計教程》中第76頁有寫到如何避免使用全比較器,覺得可以記錄下來,以後在寫**的時候可以借鑑。
先來看一下這個例子:
實現的是乙個進行迴圈累加的模10計數器,**如下:
----------------------------
library ieee
use ieee.std_logic_1164.all
----------------------------
entity counter is
port ( clk : in std_logic;
digit: out integer range 0 to 9 );
end counter;
----------------------------
architecture counter of counter is
bedin
counter : process (clk)
variable temp : integer range 0 to 10;
begin
if(clk'event and clk = '1') then
temp := temp + 1;
if (temp = 10) then temp := 0;
end if;
end if;
digit <= temp;
end process count;
end counter;
在上面**中,為了在temp計數到10時對計數器復位,每次對temp累加時都會將它與10進行比較,這是計數器設計常用的一種方法。由於10是乙個常數,編譯器會產生相對來說比較簡單的常數比較器電路。然而如果不使用常數而是乙個可程式設計的引數,那麼在電路實現時就會產生乙個全比較器,這樣會需要更多的邏
減少VMware中虛擬系統占用的記憶體資源
最近,在學linux驅動,安裝乙個ubuntu10.4系統在vmware中,分配了700mb左右的記憶體。可是有乙個問題,因為很多操作都是在字元命令介面下完成的,基本上很少用到圖形介面,於是,就用windowsxp下telnet通過vmware提供的虛擬網路直接連線虛擬系統,這樣一來,感覺linux...
殭屍程序的產生原因和避免方法
殭屍程序的產生 當乙個程序建立了乙個子程序時,他們的執行時非同步的。即父程序無法預知子程序會在什麼時候結束,那麼如果父程序很繁忙來不及wait 子程序時,那麼當子程序結束時,會不會丟失子程序的結束時的狀態資訊呢?處於這種考慮unix提供了一種機制可以保證只要父程序想知道子程序結束時的資訊,它就可以得...
野指標產生的原因和避免方法
struct student stu,pstu intmain void 這是很多人都容易犯的錯誤 定義了結構體變數stu,但結構體內部的char name在定義結構體時只是為其分配了4位元組的記憶體,沒有指向乙個合法的位址,這時其指標指向的區域只是一些亂碼,有事還沒有訪問許可權。這就是我們通常所說...