HDLBits (134) — PS/2 數(shù)據(jù)包解析器和數(shù)據(jù)路徑
本題鏈接:
https://hdlbits.01xz.net/wiki/Fsm_ps2data
另請參閱:PS/2 packet parser
既然您有一個狀態(tài)機,它將在PS / 2字節(jié)流中識別三個字節(jié)的消息,每當(dāng)收到數(shù)據(jù)包時也會輸出24位(3字節(jié))消息的數(shù)據(jù)路徑(OUT_BYTES [23:16]是第一個字節(jié),Out_Bytes [15:8]是第二個字節(jié),以此類推)。?
每當(dāng)out_bytes被置位時都需要enable。 您可以在其他時候輸出任何東西(即?don't-care)。?
例如:


題目

答案
提示:
使用?PS/2 packet parser?中的有限狀態(tài)機并添加數(shù)據(jù)路徑以捕獲輸入的字節(jié)。

有限狀態(tài)機(Finite-State Machine,F(xiàn)SM),簡稱狀態(tài)機,是表示有限個狀態(tài)以及在這些狀態(tài)之間的轉(zhuǎn)移和動作等行為的數(shù)學(xué)模型。狀態(tài)機不僅是一種電路的描述工具,而且也是一種思想方法,在電路設(shè)計的系統(tǒng)級和 RTL 級有著廣泛的應(yīng)用。
Verilog 中狀態(tài)機主要用于同步時序邏輯的設(shè)計,能夠在有限個狀態(tài)之間按一定要求和規(guī)律切換時序電路的狀態(tài)。狀態(tài)的切換方向不但取決于各個輸入值,還取決于當(dāng)前所在狀態(tài)。狀態(tài)機可分為 2 類:Moore?狀態(tài)機和 Mealy 狀態(tài)機。
PS/2接口是一種PC兼容型電腦系統(tǒng)上的接口,可以用來鏈接鍵盤及鼠標(biāo)。PS/2的命名來自于1987年時IBM所推出的個人電腦:PS/2系列。PS/2鼠標(biāo)連接通常用來取代舊式的序列鼠標(biāo)接口(DB-9?RS-232);而PS/2鍵盤連接則用來取代為IBM PC/AT所設(shè)計的大型5-pin?DIN接口。PS/2的鍵盤及鼠標(biāo)接口在電氣特性上十分類似,其中主要的差別在于鍵盤接口需要雙向的溝通。在早期如果對調(diào)鍵盤和鼠標(biāo)的插槽,大部分的臺式機主板不能將其正確識別?,F(xiàn)在已經(jīng)出現(xiàn)共享接口,能夠隨意插入鍵盤或鼠標(biāo)并正確識別處理。
目前PS/2接口已經(jīng)慢慢的被USB所取代,只有少部分的臺式機仍然提供完整的PS/2鍵盤及鼠標(biāo)接口,少部分機器則已無PS/2,大部分的機器僅提供一組鍵盤及鼠標(biāo)可以共享之PS/2接口或是僅可供鍵盤使用。有些鼠標(biāo)及鍵盤可以使用轉(zhuǎn)換器將接口由USB轉(zhuǎn)成PS/2,亦有可從USB分接成鍵盤鼠標(biāo)用PS/2接口的轉(zhuǎn)接線。不過,由于USB接口對鍵盤無特殊調(diào)整下最大只能支持6鍵無沖突,而PS/2鍵盤接口可以支持所有按鍵同時而無沖突。[1]因此大部分主板PS/2鍵盤連接端口仍然被保留,或是僅保留一組PS/2鍵盤及鼠標(biāo)都可共享之PS/2端口,同時保留鍵盤及鼠標(biāo)各自單獨接口之主板目前已經(jīng)比較少。
PS/2接口從定義上不支持熱插拔,盡管在實踐中,大部分PS/2鍵盤熱插拔可以直接使用,但也應(yīng)當(dāng)避免熱插拔行為。哪怕設(shè)備支持混用鍵盤鼠標(biāo)接口,跨接口類型的熱插拔一般無法實現(xiàn),需要重啟設(shè)備后才能正常工作,這是控制器及操作系統(tǒng)共同導(dǎo)致的。
參考內(nèi)容:
6.3 Verilog 狀態(tài)機?| 菜鳥教程:
https://www.runoob.com/w3cnote/verilog-fsm.html
PS/2接口?| 維基百科:
https://zh.wikipedia.org/wiki/PS/2接口