新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于FPGA的可變長(zhǎng)度移位寄存器優(yōu)化設(shè)計(jì)

基于FPGA的可變長(zhǎng)度移位寄存器優(yōu)化設(shè)計(jì)

作者: 時(shí)間:2011-07-24 來(lái)源:網(wǎng)絡(luò) 收藏

本文以最大為N、寬度為1bit的為模型,討論如何從結(jié)構(gòu)上和有效的實(shí)現(xiàn)。至于寬度不為1bit的情況,可以此類推。

本文引用地址:http://2s4d.com/article/150431.htm

  1 的常用結(jié)構(gòu)

  通常可變長(zhǎng)度移位寄存器的結(jié)構(gòu)可分為兩種:一種是輸入分支型(結(jié)構(gòu)A),如圖1所示;另一種是輸出分支型(結(jié)構(gòu)B),如圖2所示。

  

可變長(zhǎng)度移位寄存器的結(jié)構(gòu)

  結(jié)構(gòu)A與結(jié)構(gòu)B有兩個(gè)共同點(diǎn):第一,都是由觸發(fā)器鏈路加數(shù)據(jù)流向控制邏輯組成;第二,每級(jí)觸發(fā)器的輸入輸出都是信號(hào)節(jié)點(diǎn),因而各級(jí)都需要對(duì)本級(jí)節(jié)點(diǎn)的信號(hào)流向進(jìn)行控制。結(jié)構(gòu)A用n-to-2n譯碼器來(lái)控制信號(hào)流向,結(jié)構(gòu)B則用2n:1多路復(fù)用器控制信號(hào)流向。對(duì)于基本邏輯單元為查找表(LUT)+觸發(fā)器(FF)+多路復(fù)用器(MUX)結(jié)構(gòu)的來(lái)說(shuō),直接采用結(jié)構(gòu)A與結(jié)構(gòu)B構(gòu)造較長(zhǎng)的移位寄存器時(shí),觸發(fā)器鏈和復(fù)雜的組合邏輯會(huì)消耗很多資源,即這兩種結(jié)構(gòu)不宜用于較長(zhǎng)的可變長(zhǎng)度移位寄存器。

  2 解決方案

  為解決上述問(wèn)題,可以采用如下兩個(gè)方法:

  (1)功能結(jié)構(gòu)與硬件結(jié)構(gòu)的搭配。根據(jù)移位寄存器結(jié)構(gòu)類型,選擇適宜的芯片以提高資源利用率,降低資源消耗。

  (2)移位寄存器結(jié)構(gòu)。采用FPGA片內(nèi)RAM來(lái)實(shí)現(xiàn)移位寄存器,利用片內(nèi)RAM速度快、數(shù)量大的優(yōu)點(diǎn),直接減少基本邏輯單元的消耗,提高資源利用率。

  2.1 優(yōu)化功能結(jié)構(gòu)與硬件結(jié)構(gòu)的搭配

  通過(guò)調(diào)整FPGA芯片類型與移位寄存器結(jié)構(gòu)類型的搭配,可以提高資源利用率,降低資源消耗。下面以結(jié)構(gòu)B為例,闡述如何應(yīng)用Xilinx公司的Spartan-3系列芯片高效地實(shí)現(xiàn)N=128的可變長(zhǎng)度移位寄存器。

  2.1.1 實(shí)現(xiàn)原理

  Spartan-3系列芯片的每個(gè)可配置邏輯塊CLB[1]如圖3所示,包含8個(gè)LUT、8個(gè)DFF和8個(gè)2:1多路復(fù)用器(4個(gè)F5MUX,2個(gè)F6MUX,1個(gè)F7MUX,1個(gè)F8MUX),而每個(gè)LUT都能配置成移位寄存器模式(SRL),相當(dāng)于一個(gè)16級(jí)的可逐級(jí)尋址的移位寄存器。如圖4所示,一個(gè)LUT就包含了構(gòu)成結(jié)構(gòu)B所需的全部要素,從而有效地實(shí)現(xiàn)N=16的可變長(zhǎng)度移位寄存器[2].Q15是用于多級(jí)級(jí)聯(lián)實(shí)現(xiàn)N>16的移位寄存器的進(jìn)位輸出。

  

Spartan-3系列芯片的每個(gè)可配置邏輯塊CLB

  

LUT配置成可尋址的移位寄存器


上一頁(yè) 1 2 下一頁(yè)

評(píng)論


技術(shù)專區(qū)

關(guān)閉