VHDL语言语言时序逻辑电路设计课件.ppt
*VHDL語言語言時序邏輯電路設計時鐘的描述方法上升沿:CP’EVENTANDCP=‘1’下升沿:CP’EVENTANDCP=‘0’CP=0CP=0CP=1CP=1CP’EVENTCP’EVENTCP’EVENT上升沿D觸發器描述方法一:使用信號屬性函數LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYD_regIS PORT(D,CP:INSTD_LOGIC; Q:OUTSTD_LOGIC);ENDD_reg;ARCHITECTUREtestOFD_regISBEGIN PROCESS(CP) BEGIN IF(CP’EVENTANDCP=‘1’)THEN Q=D; ENDPROCESS;ENDtest;方法二:使用WAIT語句LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYD_regIS PORT(D,CP:INSTD_LOGIC; Q:OUTSTD_LOGIC);ENDD_reg;ARCHITECTUREtestOFD_regISBEGIN PROCESS BEGIN WAITUNTILCP=‘1’; Q=D; ENDPROCESS;ENDtest;上升沿D觸發器描述方法三:使用上升沿檢測函數LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYD_regIS PORT(D,CP:INSTD_LOGIC; Q:OUTSTD_LOGIC);ENDD_reg;ARCHITECTUREtestOFD_regISBEGIN PROCESS(cp) BEGIN IF(rising_edge(cp))THEN Q=D; ENDIF; ENDPROCESS;ENDtest;上升沿D觸發器描述方法四:使用進程的啟動特性LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYD_regIS PORT(D,CP:INSTD_LOGIC; Q:OUTSTD_LOGIC);ENDD_reg;ARCHITECTUREtestOFD_regISBEGIN PROCESS(CP) BEGIN IFCP=‘1’THEN Q=D; ENDIF; ENDPROCESS;ENDtest;上升沿D觸發器描述上升沿D觸發器描述下降沿D觸發器描述方法一:使用信號屬性函數LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYD_regIS PORT(D,CP:INSTD_LOGIC; Q:OUTSTD_LOGIC);ENDD_reg;ARCHITECTUREtestOFD_regISBEGIN PROCESS(CP) BEGIN IF(CP’EVENTANDCP=‘0’)THEN Q=D; ENDPROCESS;ENDtest;方法二:使用WAIT語句LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYD_regIS PORT(D,CP:INSTD_LOGIC; Q:OUTSTD_LOGIC);ENDD_reg;ARCHITECTUREtestOFD_regISBEGIN PROCESS BEGIN WAITUNTILCP=‘0’; Q=D; ENDPROCESS;ENDtest;下降沿D觸發器描述方法三:使用下降沿檢測函數LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYD_regIS PORT(D,CP:INSTD_LOGIC; Q:OUTSTD_LOGIC);ENDD_reg;ARCHITECTUREtestOFD_regISBEGIN PROCESS(cp) BEGIN IF(falling_edge(cp))THEN Q=D; ENDIF; ENDPROCESS;ENDtest;下降沿D觸發器描述方法四:使用進程的啟動特性LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYD_