• 沒有找到結果。

位址產生單元

N/A
N/A
Protected

Academic year: 2021

Share "位址產生單元"

Copied!
13
0
0

加載中.... (立即查看全文)

全文

(1)

第四章 晶片 VHDL 模組單元設計

承第三章第一節,圖 11 與圖 12 所示,FRC 晶片設計共可分為五大單元,即 資料流控制單元(Datapath Controller),位址產生單元(Address Generation Unit, AGU)指紋前處理模組單元(包含 Binarization Unit 與 Thinning Unit),編碼運算單 元(包含 Ending Point Unit 與 Bifurcation Point Unit)與輸出入介面處理單元 (Input/Output Interface Unit)。其中,Thinning Unit 與編碼運算單元,使用將演算 法結果轉成查表的硬體化方式,所以硬體化後,只要修改查表內容,便可以適應 不同演算法,符合可撓性的設計原則;而 AGU 的設計可適用於,產生 3x3 與 5x5 遮罩運算所需的位址,以及配合資料流控制單元設計,方便未來擴充為 7x7、9x9 及 13x13 等不同尺寸大小的影像遮罩,以符合可擴充性的設計;此外,資料流控 制單元在上一章併同整體 FRC 晶片架構已詳談過,本章將針對其餘四個模組詳 予介紹。

第一節 位址產生單元

位址產生單元

(Address Generation Unit, AGU)

主要負責的工作有兩部份,第一部 份就是將以 P 點為中心,位址座標為(i,j),其中 i 代表 Col,而則 j 代表 Row,產 生 3x3 或 5x5 遮罩內的每一個點(pixel)的座標位址,以 P 點為中心之 3x3 與 5x5 對應位址如圖 24 所示,由圖中可以知道其所對應的硬體該如何設計,在圖 24(a) 為 3x3 的遮罩與其所對應的位址座標,而圖 24(b)為 5x5 的遮罩,觀察其 i 與 j 的 變化,可以知道在 3x3 的遮罩中的 P1’~P8’,對於 i 或 j 的變化量都是介於+/- 1 的,而在 5x5 遮罩中 P1~P24,其 i 與 j 的變化量則為+/- 2。

P11 (i-2,j-2)

P12 (i-1,j-2)

P13 (i,j-2)

P14 (i+1,j-2)

P15 (i+2,j-2)

P10 (i-2,j-1)

P1 (i-1,j-1)

P2 (i,j-1)

P3 (i+1,j-1)

P16 (i+2,j-1)

P9 (i-2,j)

P8 (i-1,j)

P (i,j)

P4 (i+1,j)

P17 (i+2,j)

P24 (i-2,j+1)

P7 (i-1,j+1)

P6 (i,j+1)

P5 (i+1,j+1)

P18 (i+2,j+1)

P23 (i-2,j+2)

P22 (i-1,j+2)

P21 (i,j+2)

P20 (i+1,j+2)

P19 (i+2,j+1)

*其中i代表Col,j代表Row P1'

(i-1,j-1) P2' (i,j-1)

P3' (i+1,j-1)

P8' (i-1,j)

P (i,j)

P4' (i+1,j)

P7' (i-1,j+1)

P6' (i,j+1)

P5' (i+1,j+1)

(2)

(a) (b)

圖 24 以 P 為中心使用遮罩所對應座標

(a)3x3 遮罩 (b)5x5 遮罩

觀察圖 24 可以發現在圖 24(b) 5x5 遮罩中的 P1~P8 與圖 24(a) 3x3 遮罩中的 P1’~P8’的運算是相同的,也就是說,這兩個部份的硬體資源可以相互共用,因為 5x5 的遮罩內容包含了 3x3 遮罩的部份,如圖 25 所示。

圖 255X5 遮罩與 3X3 遮罩共用關係

而 AGU 第二部份的工作,就是要讓 FRC 可以很容易的產生外掛式記憶體中 的任一位址,也就是說可以任意取得外掛式記憶體中任一位址的資料。

目前所決定的指紋影像大小為 2D 影像 200(Row)x200(Col)x8=40KB,要如何 產生這 40KB 中任一位址的資料呢?事實上 200(Row)x200(Row)的指紋影像在實 際記憶體中是為 1D 的陣列排列,而 AGU 所做的動作就是將 2D 的陣列轉換成 1D 的陣列行為。可以透過公式(5),瞭解在數學的轉換上如何將 200x200 的 2D 陣列 轉成 0~39999 的 1D 陣列。

Memory Address[m]|

m=0~39999

=200 x Row|

Row=0~199

+ Col|

Col=0~199………

(5) 只要透過公式(5)代入 Row 與 Col 便可以得到在記憶體中實際的位址。其中 Col 可視為一幅影像上的 X 軸座標,Row 則可視為 Y 軸上的座標。

根據圖 25 可以清楚的知道 3x3 遮罩的 P1’~P8’與 5x5 遮罩的 P1~P8 相同,所 以在硬體化時可將這兩部份的硬體結合在一起,可利用選擇線選擇 3x3 遮罩或 5x5 遮罩。因為在同一個時間,只能對外掛式的記憶體存取一個位址的資料,所以若 要載入 3x3 遮罩所對應的位址,則必需花掉 8 個時脈(P1’~P8’);同理,若要載入

P3 P3' P11 P12 P13 P14 P15

P10 P1 P1'

P2

P2' P16

P9 P8

P8' P P4

P4' P17 P24 P7

P7' P6 P6'

P5 P5' P18 P23 P22 P21 P20 P19

5x5 Mask 3x3 Mask

遮罩排列順序

(3)

5x5 遮罩所對應的位址,則必需花掉 24 個時脈(P1~P24)。

安排在 1~8 個時脈,用途為產生 3x3 遮罩所對應的位址,以及 5x5 遮罩中對 應 P1~P8 位址,這個部份屬於共用的硬體資源;在 9~24 個時脈為產生 5x5 遮罩 中剩餘的 P9~P24 的位址,對應時脈關係整理如圖 26 所示。可以根據圖 26 設計 MAG 的電路,MAG 的硬體電路如圖 27 所示。

圖中使用 8bit 的加減法器,用來產生+1,-1,+2,-2 的運算;利用 24 對 1 的多工器,將圖 25 中所對應的位址依序排列,透過 5bit 的 Counter 選擇所要產生 的位址是 3x3 遮罩的內容或是 5x5 遮罩內容。

其中當 Mode Sel 為 0 時,5bit 的 Counter 會產生 0~7 的計數,也就是可選擇 到 3x3 遮罩(P1~P8 的位址),而當 Mode Sel 為 1 時,5bit 的 Counter 將產生 0~23 的計數,也就是可選擇到 5x5 遮罩(P1~P24 的位址)。

圖 26 耗用時脈與其產生對應位址關係

If Mode Sel=0;

The 5bit Counter range 0~7 If Mode Sel=1;

The 5bit Counter range 0~24

(Row in) (Row in-1) (Row in-2) (Col in) (Col in-1) (Col in-2)

00000 00001 00010 00011 00100 00101 1011110110

(Row in+1) (Row in+2) (Col in+1) (Col in+2)

R0 R1 R2 R3 R4 C0 C1 C2 C3 C4

R1 C1 R1 C0 R1 C3 R0 C3 R3 C3 R3 C0 R4 C2 R3 C2

………

Row out Col out

5bit Counter Sel

24對1多工器 Mux 24 to 1

8bit 加減法器

Clk Mode Sel

SynCLK

Reset

8 8

Remark:

Col in Row in

8 8

MAG

5

(4)

圖 27 AGU 硬體電路

(5)

第二節 指紋前處理模組單元

本模組單元分為兩個獨立子單元,即二值化單元(Binarization Unit)與細線化 單元(Thinning)。這兩個子單元是指紋像進行前處理工作時,最浪費計算時間的部 份,本論文提出有效的硬體化方法它們轉化為硬體模組,其中,細線化單元特別 具獨創性[10]。

(一)二值化處理單元(Binarization Unit, BinU))

Binariztion Unit (BinU)為二值化單元,二值化的處理方法中,最常見的方式,

就是選定一個固定的門檻值(threshold value),當所判斷的像素灰階值大於等於其 門檻值時,就令該像素為 255(白色),反之,當所判斷的像素灰階值小於其門檻 值時,就令該像素為 0(黑白),如圖 28 所示。

圖 28 常見二值化處理方法

若採用如圖 28 所示的方法,在處理的效果上,比較容易產生影像雜訊(noise) 或將原有的影像資訊刪除,所以適應性比較差,所以本研究使用的二值化方法,

就是利用 5x5 遮罩運算,動態產生 threshold value,這種做法的優點擁有較高的 適應性,可以產生效果較好的二值化結果,其數學運算式如公式(6)所示。

…………(6)

輸入影像 灰階值 輸出影像

灰階值

0 255

0 threshold value 255

If 輸入影像灰階值>=threshold value then 輸出影像灰階值=255

If 輸入影像灰階值<threshold value then 輸出影像灰階值=0

0 ) , 24 (

) , ( )

, (

255 ) , 24 (

) , ( )

, (

2 2

0

0 2

2 2 2

0 0

2 2

= +

+

<

= +

+

==

==

==

==

j i P then s j r i P j

i P If

j i P then s j r i P j

i P If

s r

s and

r s

r s r

s and r

s r

(6)

根據公式(6)可對二值化演算法進行其硬體化工作,其硬體化的方法如下所 示:

對於 24 個灰度值的總和計算,需要 1 個累加器(accumulator),若以最大灰度 值來計算為 255 x 24 = 6120(十進制),轉換為十六進制為:0x17E8,所以該累加 器需要 13bit 寬;接著就是要處理除法的問題,所以需要一個除 24(十進制)的除 法器,將所得平均與中心像素的灰度值做比較,故需要一個 8Bit 的比較器,硬體 電路如圖 29 所示。

圖 29BINU 硬體電路

根據圖 29 的硬體電路,使用 VHDL 將 BinU 硬體化,VHDL 硬體描述如圖 30 所示。

1 library IEEE;

2 use IEEE.STD_LOGIC_1164.ALL;

3 use IEEE.STD_LOGIC_ARITH.ALL;

4 use IEEE.STD_LOGIC_UNSIGNED.ALL;

5 use WORK.TestPack.ALL;

6

7 Entity BinU is 8 Port (

9 DatIn : In Std_logic_vector(DataWidth-1 downto 0);

10 EC : In Std_logic;

11 CLK : In Std_logic;

12 Reset : In Std_logic;

13 BinRlt : Out Std_logic_vector(DataWidth-1 downto 0)

14 );

15 End BinU;

16

17 architecture BinU _arch of BinU is 18

Remark:

當 B>=A,s=0,輸出為 0xFF(白色) 當 B<A,s=1,輸出為 0x00(黑色)

………

P1 P2 P3 P23 P24

8 16

8bit 比較器 8

A B

8 0xFF

0x00 8 8

s

BinOut (二值化結果輸出)

2對1 多工器

s 13bit累加器 (accumulator)

除法器 ÷24 (divider) SynCLK

8Bit Register En1

8

En2

BinU CLK

BinU 的實體腳位宣告 標準/自定函式庫的引用宣告

(7)

(1)Iteration 1 Rule:

1)2<=A(P)<=6 2)B(P)=1

3)P2 x P4 x P6 =0 4)P4 x P6 x P8 =0 (2) Iteration 2 Rule:

1)’與 2)’同於(1)的 1)與 2) 3)’ P2 x P4 x P8 =0 4)’ P2 x P6 x P8 =0

19 Signal ACCRlt : Std_logic_vector(12 downto 0);

20 Signal CompFlag : Std_logic;--Compare Flag 21 Signal CPXLx24 : Std_logic_vector(12 downto 0);

22 Signal CNT : Std_logic_vector(4 downto 0);

23 Signal CenterPXL : Std_logic_vector(DataWidth-1 downto 0);

24 25 Begin

26 Process(Reset,CLK) 27 Begin

28 If(Reset=Hi)Then

29 ACCRlt<=(Others=>Lo);

30 CNT<=(Others=>Lo);

31 CenterPXL<=(Others=>Lo);

32 Elsif(CLK'Event)And(CLK=Hi)Then 33 If(EC=Hi)Then

34 CNT<=CNT+1;

35 If(CNT=11)Then

36 CenterPXL<=DatIn;

37 Else

38 ACCRlt<=ACCRlt+DatIn;

39 End if;

40 End If;

41 End if;

42 End process;

43 CPXLx24 <= ("0"&CenterPXL&"0000")+("00"&CenterPXL&"000");

44 CompFlag <= Hi When(CPXLx24>=ACCRlt) Else

45 Lo;

46 BinRlt <= x"00" When CompFlag=Lo Else 47 x"FF";

48 End BinU_arch;

圖 30 BINU 硬體電路 VHDL 描述

(二)細線化單元(Thinning Unit, TU))

Thinning Unit,TU 為細線化單元,可選用的方法為 ZS algorithm 或是 LW algorithm,兩者的差異在於規則有些許不同,籍由圖 31 的 3x3 遮罩所對應的像 素,分別將 ZS algorithm 與 LW algorithm 的規則分別如圖 32 與圖 33 所示。其中 A(P)為 P(i,j)周圍為 1 的個數,B(A)則為 P(i,j)周圍由 0 變化到 1 的次數。

圖 31 3X3 遮罩所對應的像素

圖 32 ZS

A

LGORITHM 細線化規則

P1 P2 P3

P8 P P4

P7 P6 P5

13bits 附有 Reset,CLK 以及 EC 的累加器(Accumulator)

13bits 的移位加法器

13bits 的比較器 二值化結果輸出

(8)

(1)Iteration 1 Rule:

1)3<=A(P)<=6 2)B(P)=1

3)P2 x P4 x P6 =0 4)P4 x P6 x P8 =0 (2) Iteration 2 Rule:

1)’與 2)’同於(1)的 1)與 2) 3)’ P2 x P4 x P8 =0 4)’ P2 x P6 x P8 =0

圖 33 LW ALGORITHM細線化規則

透過圖 31 即可進行將細線化演算法硬體化的動作。細線化電路硬體化採用的 是查表法(Look-Up Table)的方式,使用圖 32 的細線化規則,轉換為查表方式的硬 體設計上,共需使用兩個 256x1 bit 的記憶體單元,用以達成兩個迴圈(左上與右 下)處理過程所需的運算。細線化硬體電路如圖 34 所示,其中將 P1~P8 分別接至 為該記憶體的 A0~A7 位址。

圖 34TU 硬體電路

………

P1 P2 P3 P8

2對1 多工器 0x00

0xFF 8 8

s

ThinningOut (細線化結果輸出) R/W 256 x 1bit SRAM

(Lookup Table) 8bit Register

8

8

(9)

第三節 編碼運算單元

本運算單元分為兩個子單元,即端點找尋單元(Ending Point Unit)與分叉點找 尋單元(Bifurcation Point Unit)。本論文提出的硬體化方法對這兩個單元採整合式 設計處理如下。

(一)端點找尋單元(Ending Unit, EU)

Ending Unit(EU)為端點找尋處理單元,利用 3x3 遮罩來尋找端點,在 3x3 的 所有情況中,屬於端點情況共有 16 種,如圖 35 所示:

圖 353X3 端罩中屬於端點的 16 種情況

根據圖 35 所示,使用 3x3 遮罩排列運算,可獲得端點找尋的規則,並依端點 找尋的規則使用查表法將之硬體化,端點找尋硬體化電路如圖 36 所示。

圖 36EU 硬體電路

………

P1 P2 P3 P8

2對1 多工器 0x00

0xFF 8 8

s

EndPoint Out (端點找尋結果輸出) R/W Ending Point Searching

Rule Circuit 8bit Register

8

8

(10)

(二) 分叉點處理單元(Bifurcation Unit, BifU))

Bifurcation Unit(BifU)為分叉點找尋處理單元,利用 3x3 遮罩來尋找分叉點,

在 3x3 的所有情況中,屬於分叉點的情況共有 37 種,如圖 37 所示:

圖 37 以 3X3 端罩運算屬於分叉點的 35 種情況

根據圖 37 所示,使用 3x3 遮罩排列運算,可獲得分叉點找尋的規則,並依分叉 點找尋的規則使用查表法將之硬體化,分叉點找尋硬體化電路如圖 38 所示

圖 38 BIFU 硬體電路

第四節 輸出入介面處理單元

本單元細分為兩個子單元,即命令/資料交握傳輸控制器(SPP Controller, SPPCtrl)與外掛式記憶體控制器(SRAM Controller, SRAMCtrl),前者負責與 PC 端 與控制命令或影像資料傳輸交握的輸出入介面,後者則是負責外掛式記憶體控制 信號、資料匯流排與位址匯流排實體訊號的硬體連線

………

P1 P2 P3 P8

2對1 多工器 0x00

0xFF 8 8

s

Bifurcation Out (分叉點找尋結果輸出) R/W Bifurcation Point

Searching Rule Circuit 8bit Register

8

8

(11)

(一)命令/資料交握傳輸控制器(SPP Controller, SPPCtrl)

SPP Controller 主要的功能就是 FRC 要從 PC 載入灰階資料資料,以及輸出運 算結果至 PC 端,FRC 與 PC 間所使用的通訊協定就是採用標準並列埠通訊協定 (Standard Parallel Protocol, SPP),傳輸交握流程如圖 39(a)與(b)所示。其中,圖 39(a) 為 PC 端傳送資料至 FRC 端的傳輸交握流程,圖 39(a)為 FRC 端傳送資料至 PC 端的傳輸交握流程。

(a) PC 端傳送命令/資料至 FRC 端

(b) FRC 端傳送影像資料至 PC 端 圖 39 PC/FRC 傳輸交握流程

PC端 FRC端

通知PC端要開始進行 資料傳輸

通知FRC端已經備妥 Line1=Hi

Line2=Hi

Line1=Hi Line2=Hi

Line1=Lo Line2=Lo

Line1=Lo Line2=Lo

Line1=Hi Line2=Hi PC端交握線狀態

FRC端的資料已備妥於Databus上,並 通知PC端可以進行讀取

通知FRC端,資料已讀取完畢

Set Line2 as " Lo"

等待PC備妥 Wait Line1 as Lo No

Yes

等待PC端 讀取完畢 Wait Line1 as "Hi"

No 等待FRC端

傳送資料

Wait Line2 as "Lo" No

Yes 等待FRC備妥

資料 Wait Line2 as "Hi"

No Yes

結束一筆 資料的交握。

451端是否有資 料要繼續傳輸?

Yes

End

Start Line1=Hi

Line2=Hi

Line1=Hi Line2=Lo

Line1=Hi Line2=Lo

Line1=Lo Line2=Hi

Line1=Lo Line2=Hi FRC端交握線狀態

Yes No

Set Line1 as " Lo"

Start

讀取Databus上的資 料,並 Set Line1 as " Hi"

Set Line2 as " Hi"

是否有資料 繼續傳送?

Yes

No End 通知PC端是否有資料要傳輸

No

PC端 FRC端

通知FRC端要開始進行 資料傳輸

通知PC端已經備妥 Line1=Hi

Line2=Hi

Line1=Lo Line2=Hi

Line1=Lo Line2=Hi

Line1=Hi Line2=Lo

Line1=Hi Line2=Lo PC端交握線狀態

PC端的資料已備妥於Databus上,並通 知FRC端可以進行讀取

通知PC端,資料已讀取完畢 Set Line1 as " Lo"

等待FRC備妥 Wait Line2 as "Lo"

等待FRC端 讀取完畢 Wait Line2 as "Hi"

等待PC端 傳送資料 Wait Line1 as "Lo"

Yes

等待PC備妥 資料 Wait Line1 as "Hi"

No

結束一筆 Yes

資料的交握。

PC端是否有資料 要繼續傳輸?

Yes

End

Start Line1=Hi

Line2=Hi

Line1=Hi Line2=Hi

Line1=Lo Line2=Lo

Line1=Lo Line2=Lo

Line1=Hi Line2=Hi FRC端交握線狀態

Set Line2 as " Lo"

Start

Set Line1 as " Hi"

是否有資料 繼續傳送?

No

End 通知FRC端是否尚有資料要傳輸

No

No

讀取Databus上的資 料,並 Set Line2 as " Hi"

Line1=Hi Line2=Hi Line1=Hi

Line2=Hi

(12)

依照圖 39 可以設計命令/資料交握傳輸控制器硬體電路,硬體電路如圖 40 所示。

圖 40 SPPCTRL硬體電路

(二)外掛式記憶體控制器(SRAM Controller, SRAMCtrl)

SRAM Controller 主要就是 FRC 實際對外掛式記憶體存取的控制器,外掛式 記憶體可分為兩個模式(1)讀取模式及(2)寫入模式,詳細時序分別如圖 41 及圖 42 所示。對外掛式記憶體的存取,需特別注意訊號腳位轉態或保持的時間,以目前 所選用的 BSI SRAM 而言,其延遲時間屬於 70ns,所以整個讀取或寫入週期必需 大於 70ns(不可比 70ns 還小),否則將造成資料讀出或寫入的錯誤。

圖 41 SRAM 讀取週期時序

Mux 2 to 1 Data In Reg.

8

Data Out Reg.

8 8

8

Sel I/O

Line 1 8

Line 2

S 0

1

Busy Flag TX Data RX Data PC LPT Data Port

Sel I/O

(13)

圖 42 SRAM 寫入週期時序

依照圖 41 及圖 42 可以發現/CS1 及 CS2 的準位都是固定的訊號,/CS1=低準 位,CS2=高準位,而/WE 與/OE 剛好都是反向,所以可以將控制減少 1 支控制接 腳,外掛式記憶體控制器硬體電路如圖 43 所示。

圖 43 SRAMCTRL硬體電路

DataBus[7..0] SRAMData[7..0]

8 8

Address[18..0]

19 19 SRAMAddress[18..0]

nWEin

nCSin

nWEOut

nOEOut

nCSOut SyncIn

數據

圖 26  耗用時脈與其產生對應位址關係
圖 30 B IN U 硬體電路 VHDL 描述  (二)細線化單元(Thinning Unit, TU))
圖 40 SPPC TRL 硬體電路  (二)外掛式記憶體控制器(SRAM Controller, SRAMCtrl)
圖 42 SRAM 寫入週期時序  依照圖 41 及圖 42 可以發現/CS1 及 CS2 的準位都是固定的訊號,/CS1=低準 位,CS2=高準位,而/WE 與/OE 剛好都是反向,所以可以將控制減少 1 支控制接 腳,外掛式記憶體控制器硬體電路如圖 43 所示。  圖 43 SRAMC TRL 硬體電路 DataBus[7..0] SRAMData[7..0]88Address[18..0]1919 SRAMAddress[18..0]nWEinnCSinnWEOutnOEOutnCSOutSyncIn

參考文獻

相關文件

先用四捨五入法分別取概數到小數第一位,再求商到個位。一包 0.764 公斤的砂糖賣 24 元,1

有人將傳播新科技演進稱為傳播革命(communication

此位址致能包括啟動代表列與行暫存器的 位址。兩階段的使用RAS與CAS設定可以

單元八:奉獻與感恩 跨文體 小五、小六 單元九:聯想 童詩 小四、小五 單元十:堅持理想 童話 小五、小六 單元十一:敘述 童話.

Private Sub Dir1_change() File1.Path = Dir1.Path updatePath.

單元 單元一 單元二 單元三 單元四 單元五 單元六 主題

[r]

下列關於 CPU 的敘述,何者正確?(A)暫存器是 CPU 內部的記憶體(B)CPU 內部快取記憶體使 用 Flash Memory(C)具有 32 條控制匯流排排線的 CPU,最大定址空間為