Microchip可配置邏輯單元(CLC)
MicrochipCLC允許用戶從八路輸入中選擇最多四個信號。這些輸入可以是兩個IO引腳、內(nèi)部時鐘、外設(shè)或寄存器位的組合。這四個信號隨后路由到可編程邏輯模塊中。該邏輯模塊可編程為AND-OR、OR-XOR、4輸入AND、S-R鎖存器的8種組合之一,也可配置為4種其它觸發(fā)器組合之一。Microchip在其《可配置邏輯單元提示與技巧》應(yīng)用手冊中給出了部分實(shí)例。其中的實(shí)例之一演示了如何配置這些模塊以解碼正交信號。在不使用這些額外的邏輯模塊情況下,CPU需要以高得多的速率采樣信號,才能避免正處于轉(zhuǎn)換階段的信號發(fā)生偽旋轉(zhuǎn),讓CPU只被有效轉(zhuǎn)換中斷。MicrochipPIC10(L)F320/322器件每個都包含一個CLC模塊,而每個CLC模塊都包含四個圖3所示的模塊。
NXP提供的用戶可配置邏輯被稱為模式匹配引擎。該邏輯模塊的輸入可選擇最大八個GPIO輸入。這八個輸入可為復(fù)雜的布爾表達(dá)生成乘積項(xiàng)。這些輸出可用于觸發(fā)中斷,驅(qū)動特殊IO引腳,或是路由到下一個邏輯模塊或slice。其它特性則支持上升或下降信號以及反相信號的邊緣檢測。該附加硬件經(jīng)配置后,只有發(fā)生復(fù)雜(或簡單)事件組合時才中斷CPU。NXPLPC81x器件內(nèi)置一個模式匹配引擎。
賽普拉斯通過使用通用數(shù)字模塊或UDB,采用更先進(jìn)的方法在上文介紹的其他三個廠商的方法和FPGA之間獨(dú)樹一幟。一個UDB由兩個12C4PLD和一個數(shù)據(jù)通路構(gòu)成。PLD可用于控制數(shù)據(jù)通路的操作和數(shù)據(jù)流,也可用作通用邏輯和狀態(tài)機(jī)。數(shù)據(jù)通路是一種能提供8位功能(AND、OR、ADD、SUB、INC、DEC、XOR)、移位功能(左和右)以及供數(shù)據(jù)排隊(duì)的兩個4字節(jié)FIFO的定制模塊。這些模塊也可以結(jié)合在一起提供16位、24位或32位功能。
UDB的輸入和輸出可路由到任何GPIO、外設(shè)/組件IO、中斷等。UDB、固定功能模擬和數(shù)字模塊以及GPIO之間的互聯(lián)都使用數(shù)字信號接口(DSI)處理。UDB經(jīng)編程可實(shí)現(xiàn)為任何功能,包括從簡單的邏輯門到計(jì)數(shù)器和PWM以及UART和I2C外設(shè)等通用串行接口。
就利用UDB實(shí)現(xiàn)設(shè)計(jì)而言,用戶可以選擇多種選項(xiàng)。既可把簡單的邏輯門布局在原理圖中,也可在Verilog中實(shí)現(xiàn)設(shè)計(jì)。還可提供定制圖形界面,無需使用Verilog即可實(shí)現(xiàn)設(shè)計(jì)。PSoC3、PSoC4和PSoC5系列微控制器可包含4個到24個此類邏輯模塊(UDB)。
最近我注意到Worldsemi生產(chǎn)的一些RGBLED很有意思。部件編號分別為WS2811、WS2812和WS2812B,但它們工作方式一致。只需要一個GPIO引腳,您就可以驅(qū)動1,000個或者更多的此類部件。這相當(dāng)令人感興趣,因?yàn)槲夷軌蛴靡粋€GPIO引腳控制如此大數(shù)量的RGBLED。連接這些LED的接口不是SPI、UART或I2C,而是定制接口。通信信號采用異步信號,每一位開始于上升沿。數(shù)據(jù)為1或0由下圖所示的高脈沖長度決定。
MicrochipCLC允許用戶從八路輸入中選擇最多四個信號。這些輸入可以是兩個IO引腳、內(nèi)部時鐘、外設(shè)或寄存器位的組合。這四個信號隨后路由到可編程邏輯模塊中。該邏輯模塊可編程為AND-OR、OR-XOR、4輸入AND、S-R鎖存器的8種組合之一,也可配置為4種其它觸發(fā)器組合之一。Microchip在其《可配置邏輯單元提示與技巧》應(yīng)用手冊中給出了部分實(shí)例。其中的實(shí)例之一演示了如何配置這些模塊以解碼正交信號。在不使用這些額外的邏輯模塊情況下,CPU需要以高得多的速率采樣信號,才能避免正處于轉(zhuǎn)換階段的信號發(fā)生偽旋轉(zhuǎn),讓CPU只被有效轉(zhuǎn)換中斷。MicrochipPIC10(L)F320/322器件每個都包含一個CLC模塊,而每個CLC模塊都包含四個圖3所示的模塊。
圖3Microchip的可配置邏輯單元(4個中的一個)
NXP模式匹配引擎NXP提供的用戶可配置邏輯被稱為模式匹配引擎。該邏輯模塊的輸入可選擇最大八個GPIO輸入。這八個輸入可為復(fù)雜的布爾表達(dá)生成乘積項(xiàng)。這些輸出可用于觸發(fā)中斷,驅(qū)動特殊IO引腳,或是路由到下一個邏輯模塊或slice。其它特性則支持上升或下降信號以及反相信號的邊緣檢測。該附加硬件經(jīng)配置后,只有發(fā)生復(fù)雜(或簡單)事件組合時才中斷CPU。NXPLPC81x器件內(nèi)置一個模式匹配引擎。
圖4NXP引腳中斷/模式匹配引擎
賽普拉斯PSoC通用數(shù)字模塊(UDB)賽普拉斯通過使用通用數(shù)字模塊或UDB,采用更先進(jìn)的方法在上文介紹的其他三個廠商的方法和FPGA之間獨(dú)樹一幟。一個UDB由兩個12C4PLD和一個數(shù)據(jù)通路構(gòu)成。PLD可用于控制數(shù)據(jù)通路的操作和數(shù)據(jù)流,也可用作通用邏輯和狀態(tài)機(jī)。數(shù)據(jù)通路是一種能提供8位功能(AND、OR、ADD、SUB、INC、DEC、XOR)、移位功能(左和右)以及供數(shù)據(jù)排隊(duì)的兩個4字節(jié)FIFO的定制模塊。這些模塊也可以結(jié)合在一起提供16位、24位或32位功能。
UDB的輸入和輸出可路由到任何GPIO、外設(shè)/組件IO、中斷等。UDB、固定功能模擬和數(shù)字模塊以及GPIO之間的互聯(lián)都使用數(shù)字信號接口(DSI)處理。UDB經(jīng)編程可實(shí)現(xiàn)為任何功能,包括從簡單的邏輯門到計(jì)數(shù)器和PWM以及UART和I2C外設(shè)等通用串行接口。
就利用UDB實(shí)現(xiàn)設(shè)計(jì)而言,用戶可以選擇多種選項(xiàng)。既可把簡單的邏輯門布局在原理圖中,也可在Verilog中實(shí)現(xiàn)設(shè)計(jì)。還可提供定制圖形界面,無需使用Verilog即可實(shí)現(xiàn)設(shè)計(jì)。PSoC3、PSoC4和PSoC5系列微控制器可包含4個到24個此類邏輯模塊(UDB)。
圖5賽普拉斯PSoC通用數(shù)字模塊(UDB)
[pagebreak] 定制接口實(shí)例最近我注意到Worldsemi生產(chǎn)的一些RGBLED很有意思。部件編號分別為WS2811、WS2812和WS2812B,但它們工作方式一致。只需要一個GPIO引腳,您就可以驅(qū)動1,000個或者更多的此類部件。這相當(dāng)令人感興趣,因?yàn)槲夷軌蛴靡粋€GPIO引腳控制如此大數(shù)量的RGBLED。連接這些LED的接口不是SPI、UART或I2C,而是定制接口。通信信號采用異步信號,每一位開始于上升沿。數(shù)據(jù)為1或0由下圖所示的高脈沖長度決定。
圖6WS2811/12數(shù)據(jù)0/1時序