电工电子设计
1.基本概念
EDA:Electronic design automation,電子設計自動化。是指利用計算機輔助設計(CAD)軟件,來完成超大規模集成電路(VLSI)芯片的功能設計、綜合、驗證、物理設計(包括布局、布線、版圖、設計規則檢查等)等流程的設計方式。(節省人力與時間,提高效率)
CPLD:Complex Programmable logic device,復雜可編程邏輯器件。采用CMOS EPROM、EEPROM、快閃存儲器和SRAM等編程技術,從而構成了高密度、高速度和低功耗的可編程邏輯器件。主要由邏輯塊、可編程互連通道和I/O塊三部分構成。(其中集成了很多可編程的數字邏輯單元,最后實現什么樣的功能就是靠燒進去的是是么樣的程序,比如燒進去的是計數器,那么實現的就是計數器的功能)
FPGA:Field Programmable Gate Array,現場可編程邏輯門陣列。它是作為專用集成電路(ASIC)領域中的一種半定制電路而出現的,既解決了定制電路的不足,又克服了原有可編程器件門電路數有限的缺點。
VHDL:Very-High-Speed Integrated Circuit Hardware Description Language,超高速集成電路硬件描述語言。是一種用于電路設計的高級語言,與其他硬件描述語言相比,其具有語言簡潔、靈活性強、不依賴于器件設計等特點。
2.VHDL語言的理解與解讀(if語句)
#十一進制加法計數器 LIBRARY ieee;--打開ieee庫USE ieee.std_logic_1164.all;--使用ieee庫中std_logic_1164程序包中的所有項目use ieee.std_logic_unsigned.all;--使用ieee庫中std_logic_unsigned程序包中的所有項目(非符號數)use ieee.std_logic_arith.all;--使用ieee庫中std_logic_arith程序包中的所有項目(算數運算)ENTITY counter IS--實體counter開始generic(number:integer:=10);--定義靜態參數number為10的整數PORT--端口( inputdata : IN INTEGER RANGE 0 TO 15;--inputdata為輸入整數范圍0-15inclk : IN STD_LOGIC;--inclk為輸入的標準邏輯數據(數字時鐘)clear : IN STD_LOGIC;--clear為輸入的標準邏輯數據(清除信號)enable : IN STD_LOGIC;--enable為輸入的標準邏輯數據(使能信號)load : IN STD_LOGIC;--load為輸入的標準邏輯數據(裝載信號)countoutput : OUT INTEGER RANGE 0 TO 15 );--countoutput為輸出范圍為0-15的整數END counter;--counter的實體結束ARCHITECTURE a OF counter IS--定義實體counter對應的結構體a開始SIGNAL countbuffer : INTEGER RANGE 0 to 15;--定義信號countbuffer整數范圍為0-15signal countlogic: std_logic_vector(3 downto 0);--定義信號countlogic為4位的標準邏輯向量BEGIN--結構體開始PROCESS (inclk, clear)--進程,其中inclk和clear為本進程的敏感信號(當敏感信號發生變化時,進程才會開始)BEGIN--進程開始IF clear = '0' THEN --若clear=0,那么執行下一條語句countbuffer<= 0; --countbuffer清零ELSIF (inclk'EVENT AND inclk= '1') THEN --若clear不為0,且inclk上升沿到達,那么執行下一條語句 IF load = '1' THEN --若load=1,則執行下一條語句countbuffer <= inputdata; --將inputdata的值賦值給countbuffer ELSE --否則IF (enable = '1') and (countbuffer<number) THEN--如果clear不為0,load不為1,enable為1,那么執行下一條語句countbuffer<=countbuffer+1; --countbuffer加1ELSif (enable = '1') and (countbuffer>=number) then --否則如果enable為1,且countbuffer大于等于number定義的值,執行下一條語句 countbuffer<=0;--countbuffer清零else--否則countbuffer <=countbuffer; --countbuffer的值不變END IF; --結束if語句 END IF; --結束if語句END IF; --結束if語句END PROCESS;--結束進程countoutput<= countbuffer;--countbuffer賦值給countoutput輸出END a;--結束結構體a同步加法計數器clear清零信號,異步控制load裝置數據信號,同步控制enable 使能信號,同步控制? ? ? countbuffer就是一個數據緩沖器,相當于一個中間變量,因為輸出countoutput不能再次作為輸入,所以引入一個中間變量。
? ? ?? ? ? 過程依次為:庫--程序包--實體(定義系統的輸入與輸出)--結構體(關鍵所在,定義系統的行為、元件及內部的連接關系,即描述其邏輯功能。)
總結
- 上一篇: js固定表头或者表列
- 下一篇: GDI对象与核心对象