Mô hình mô phỏng RCA trong ModelSIM

Một phần của tài liệu (LUẬN văn THẠC sĩ) nghiên cứu thiết kế mảng tái cấu hình kiến trúc thô CGRA ứng dụng cho kỹ thuật điều khiển luận văn ths công nghệ điện tử viễn thông 60 52 02 03 (Trang 42)

Testbench mô phỏng lõi RCA của GR được thực hiện như trong Hình 28 - UUT RCA: là mô hình RTL viết bằng ngôn ngữ mô tả phần cứng VHDL của

mảng CGRA được đề xuất trong chương 2.

- CLK_GEN: tạo xung đồng bộ trong toàn hệ thống.

- IN/OUT ONTROLLER điều khiển quá trình ghi đọc dữ liệu kiểm thử (bao gồm dữ liệu cấu hình, dữ liệu kiểm thử). Dữ liệu đầu v o được đưa v o bằng các file text (để thuận tiện trong việc mô phỏng với các khối dữ liệu lớn). Trong trường hợp dữ liệu đầu ra phức tạp, cần xử lý để thuận tiện cho việc kiểm tra thì có thể xuất ra file text; trường hợp đơn giản có thể xem kết quả trực tiếp trên cửa sổ WAVE của ModelSim.

Nguyên tắc thực hiện mô phỏng kiểm thử như sau:

- Dữ liệu đầu v o được tạo ngẫu nhiên bằng chương trình M TL B (hoặc C). - Thông tin cấu hình được thiết lập thủ công tr n cơ sở đã xác định trước cấu

hình sẽ sử dụng.

- Dữ liệu đầu ra sẽ được lưu lại và so sánh với việc thực hiện tính toán bằng phần mềm trên MATLAB hoặc C.

Tr n cơ sở như tr n, RCA với thiết kế trình bày ở chương 2 đã được tiến hành mô phỏng một số cấu hình tính toán thường dùng trong kỹ thuật điều khiển, bao gồm:

- Phép tính tổng, tích vô hướng.

- Bộ điều khiển PI (proportional integral).

- Phép tính tổng của một dãy trong cửa sổ trượt (Moving average). - Thực hiện bộ lọc FIR

3.2 Kết quả mô phỏng lõi RCA_4x4 của CGRA trên ModelSIM

3.2.1Kết quả mô phỏng phép toán Tổng của một dãy và Tích vô hướng của hai vector

x1 y1 x2 y2 x x x3 y3 x4 y4 x x x x x x + + x x + x x x RCA 4x4 x1 y1 x2 y2 x x x3 y3 x4 y4 x x + + x x ACC x x x RCA 4x4 + + + +

Hình 29: Cấu hình thực hiện mô phỏng phép tính SUM và tích vô hƣớng

Phép tính tổng của một dãy

Kịch bản mô phỏng

- Tính tổng SUM(X) = x1 + x2 + x3 + x4 + x5 + x6 + x7 + x8

- Dữ liệu đầu vào: gồm chuỗi X = (x1, x 2, x3, x4, x5, x6, x7, x8) đuợc tạo ngẫu nhiên bởi Matlab.

- Dữ liệu đối chiếu lối ra: Tổng của chuỗi lối vào tính bởi phần mềm Matlab được dùng để đối chiếu với các kết quả được tính bằng mô phỏng kiến trúc CGRA trên ModelSim

Hình 30 minh họa kết quả mô phỏng trên modelSim cho trường hợp: - X = (1, 2, 3, 4, 5, 6, 7, 8);

- Kết quả tính toán SUM(X) = 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 = 36

Phép toán tích vô hƣớng

Kịch bản mô phỏng:

- Tính tích vô hướng <X,Y> = x1×y1 + x2× y2 + x3× y3 + x4× y4

- Dữ liệu đầu vào: gồm cặp vector X = (x1,x 2, x3, x4) và Y =(y1, y2, y3, y4) đuợc tạo ngẫu nhiên bởi Matlab

- Dữ liệu đối chiếu lối ra: Tính tích vô hướng của cặp vector (X,Y) lối vào tính bởi phần mềm Matlabđược dùng để đối chiếu với các kết quả được tính bằng mô phỏng kiến trúc CGRA trên ModelSim

Hình 31 minh họa kết quả mô phỏng tr n modelSim cho trường hợp: - X = (1, 2, 3, 4)

- Y = (5, 6, 7, 8);

Hình 30: Kết quả mô phỏng RCA_4x4 với phép toán tính tổng

Hình 31: Kết quả mô phỏng RCA_4x4 với phép toán tích vô hƣớng

3.2.2Kết quả mô phỏng tính tổng theo cửa sổ trượt (Moving-windows).

Công thức tính tổng theo cửa sổ trượt kích thước N có dạng như sau:

( ) ∑ ( )

(3-1)

Công thức (3-1) có thể viết lại dưới dạng hiệu của hai tổng tích lũy như sau: Kết quả đầu ra có giá trị = 36 Kết quả đầu ra có giá trị = 70

( ) ∑ ( ) ∑ ( ) (3-2)

Cách biểu diễn theo công thức (3-2) giúp đưa ra một cấu trúc thực thi phép tính tổng theo cửa sổ trượt như minh họa ở Hình 32, cấu trúc này phù hợp với thiết kế của RCA trong luận văn.

ADD D1 D2

SUMW(n) DN

-

Hình 32: Cấu trúc tính tổng theo cửa sổ trƣợt có kích thƣớc N

Kịch bản mô phỏng:

- Mô hình mô phỏng tính tổng theo cửa sổ trượt với kích thước cửa sổ là N=10 với cấu trúc thực thi như Hình 33

ACC RCA 4x4 D D D D D ACC D D D SUB D D D D D D ầu ra ầu vào

Hình 33: Cấu hình thực hiện phép tính tổng theo cửa sổ trƣợt

- Dữ liệu đầu vào: dữ liệu được tạo dưới dạng chuỗi ngẫu nhiên.

- Dữ liệu đối chiếu lối ra: được đối chiếu với kết quả tính bằng MATLAB tính bởi phần mềm Matlab được dùng để đối chiếu với các kết quả được tính bằng mô phỏng trên ModelSim.

Kết quả mô phỏng trong Hình 34 được thực hiện với chuỗi dữ liệu đầu vào là tín hiệu xung vuông có nhiễu cộng. ầu ra sau khi được xử lý bằng bộ cộng theo cửa sổ trượt vẫn là tín hiệu xung vuông nhưng gợn sóng do nhiễu đã được làm mịn.

Hình 34: Kết quả mô phỏng tính tổng theo cửa sổ trƣợt

3.2.3Kết quả mô phỏng thực hiện bộ lọc FIR

Công thức bộ lọc FIR tổng quát có dạng như sau:

( ) ∑ ( ) ( )

(3-3)

Có nhiều cấu trúc để thực hiện tính toán bộ lọc này, với cấu trúc thiết kế của RCA thực hiện trong luận văn thì cấu trúc thực hiện theo Hình 35 là phù hợp nhất.

Hình 35: Cấu trúc thực hiện FIR với trƣờng hợp N=5

Kịch bản mô phỏng:

- Mô phỏng bộ lọc FIR bậc 3 hệ số tương ứng là (H3, H2, H1, H0); - Thực hiện cấu hình bộ lọc tr n R như trong Hình 36.

- Dữ liệu đầu v o được sinh ngẫu nhiên từ MATLAB (để thuận tiện cho việc theo dõi, đánh giá kết quả, dữ liệu thường được tạo ra dưới dạng là hàm tổng của hai hay nhiều h m sin(2πft) có tần số f khác nhau).

- Kết quả đầu ra được so sánh với kết quả tính trực tiếp trên MATLAB. Tín hiệu đầu vào có nhiễu Tín hiệu đầu sau bộ cộng

MULT RCA 4x4 D ADD MULT D MULT ADD MULT ADD D D D D D ầu ra H3 H2 H1 H0 X(n)

Hình 36: Cấu hình thực hiện bộ lọc FIR (04 tap)

Kết quả mô phỏng trong Hình 37 được thực hiện với đầu vào là tổng của 2 hàm sin (một tần số cao, một tần số thấp). Hệ số lọc được chọn sao cho bộ lọc thực hiện chức năng lọc thông thấp, khi đó đầu ra sẽ chỉ còn lại thành phần tần số thấp.

Hình 37: Kết quả mô phỏng bộ lọc FIR có hệ số lọc {21, 13, 13, 21}

3.2.4Kết quả mô phỏng thực hiện vòng điều khiển PI (proportional integral)

Hình 38: Mô hình toán của một vòng điều khiển PI

Tín hiệu đầu v o trước lọc có thành phần tần số cao Tín hiệu đầu ra sau lọc; đã loại bỏ tần số cao

Hình 38 l mô hình cơ bản của một vòng điều khiển PI đầy đủ. Phần mô phỏng của luận văn tập trung đánh giá hoạt động của RCA_4x4 khi thực hiện vòng điều khiển, n n để đơn giản hóa, giả thiết cơ cấu chấp hành (process) chỉ là bộ trễ, tương đương với MV = PV. Các giá trị Ki và Kp sẽ được tính toán dựa theo từng tính huống điều khiển cụ thể.

Phép tính tích phân ∫ ( ) trong miền tương tự khi chuyển sang miền số sẽ được thực hiện dưới dạng tổng tích lũy. Tr n cơ sở n y, vòng điều khiển PI như Hình 38 có thể ánh xạ vào RCA như Hình 39.

Kịch bản mô phỏng:

- Mô hình mô phỏng vòng điều khiển PI (proportional integral)

RCA 4x4 SUB MUL SUB MUL ACC ầu ra Set-Point Kp Ki

Hình 39: Cấu hình vòng điều khiển PD

- Dữ liệu đầu vào:

o Giá trị cần vòng điều khiển PI cần bám theo được đưa v o qua thông số SP (setpoint). Trong trường hợp mô phỏng ở Hình 40 và Hình 41, SP là giá trị cố định.

o Vòng điều khiển có hệ số Kp, Ki điều khiển được. Kết quả ở Hình 40 được thực hiện với giá trị (SP, Kp, Ki) =(100000, 0.005, 0005), Hình 41 ứng với giá trí (SP, Kp, Ki) = (100000, 0.5, 0.5)

o Tất cả các phép toán được xử lý dưới dạng số fixed-point (32 bit, trong đó 16 bit biểu diễn phần thập phân)

Hình 40: Kết quả mô phỏng điều khiển PI với giá trị Kp và Ki nhỏ

Hình 41: Kết quả mô phỏng điều khiển PI với giá trị Kp và Ki lớn

3.2.5Nhận xét kết quả mô phỏng

Về tính năng

Các kết quả mô phỏng đã thực hiện cho thấy RCA theo thiết kế trình bày ở chương 2 của luận văn có khả năng cấu hình để thực hiện được một dải các phép toán thường gặp trong kỹ thuật điều khiển (như nội suy, tính trung bình, tính công suất, tính tương quan, vòng điều khiển cơ bản, …)

Về tốc độ tính toán:

Trong hai kết quả mô phỏng R được thực hiện trong 3.2 cho thấy sự phù hợp với kết quả phân tích thiết kế ban đầu ở mục 2.1.1 và 2.1.2. Với phép toán tổng với chiều dài dãy là 8 phần tử hay với phép toán tích vô hướng của hai vector 04 chiều thì cần 03 xung nhịp để thực hiện (mỗi nhịp tương ứng với một mức tính toán như mô tả trong các Hình 14 và Hình 15). Trong trường hợp độ dài dữ liệu đầu vào là N (với trường hợp tính tổng thì N là số lượng của phần tử trong dãy, tích vô hướng là số chiều của các vector) thì chỉ cần số xung nhịp cần cho mỗi phép toán sẽ như sau:

- (N/8 + 4) xung nhịp với phép tính tổng (quá trình tính tổng được thực hiện theo phương pháp Pipeline, mỗi lần tính thực hiện với 8 số hạng trong dãy, và cần phải 3 nhịp mới ho n th nh được một phép cộng)

- (N/4 + 4) xung nhịp với phép tính tích vô hướng. (quá trình tính tích vô hướng được thực hiện theo phương pháp Pipeline, mỗi lần tính thực hiện với 4 thành phần của mỗi vector, và cần phải 3 nhịp mới ho n th nh được một phép cộng)

Tín hiệu được điều khiển đưa về ngưỡng thiết lập ban đầu (Setpoint) Tín hiệu được điều khiển đưa về ngưỡng thiết lập ban đầu (Setpoint)

Kết quả mô phỏng ở mục 3.2 mới chỉ thể hiện được khả năng tính toán của RCA sau khi GR đã có sẵn dữ liệu đầu vào trong vùng nhớ CACHE. Trong thực tế, khi ghép nối CGRA vào một hệ thống hoàn chỉnh (ví dụ như ở cuối chương 1, mục 1.3 của luận văn), lúc n y thời gian để nạp dữ liệu đầu v o HE v đọc dữ liệu kết quả ra từ CACHE cần phải xem xét đến.. Do RCA trong CGRA tính toán với bus dữ liệu có kích thước lớn (ví dụ: RCA 8x8 với dữ liệu có độ rộng 32 bit thì bus dữ liệu xử lý là 8×32 = 256 bit) trong khi bus dữ liệu của hệ thống điều khiển nhỏ hơn rất nhiều (với mô hình ở mục 1.3 thì độ rộng của bus dữ liệu Avalon của Altera là 32 bit). Vì vậy để không làm giảm hiệu năng tính toán của CGRA, cần phải thực hiện phép toán theo kỹ thuật đường ống (pipeline), và thực hiện đồng thời quá trình ghi dữ liệu vào CACHE và xử lý dữ liệu trên RCA. Kết quả mô phỏng, tính toán trình bày trong mục 3.3 sẽ làm rõ hơn vấn đề này.

3.3 So sánh kết quả mô phỏng CGRA trên modelSim với một số nền tảng xử lý thông dụng xử lý thông dụng

Các kết quả mô phỏng trong mục 3.3 được thực hiện với GR có kích thước 8x8, độ rộng dữ liệu l 32 bit đầu vào, thời gian thực thi bằng tổng thời gian nạp dữ liệu v o/đọc kết quả ra và thời gian thực thi phép toán.

ể đánh giá hoạt động của một GR đầy đủ (đã bao gồm RCA và khối điều khiển GR _ TRL); các bước mô phỏng được thực hiện như sau:

- Giống như thực hiện với RCA, dữ liệu đầu vào của CGRA là các block dữ liệu có độ dài lần lượt là 1024, 2048 và 4096 phần tử, mỗi phần tử dữ liệu đầu vào có độ rộng là 32 bit. Tất cả các dữ liệu đầu v o đều được tạo ngẫu nhiên bằng M TL B. ối với trường hợp thực hiện bộ lọc FIR thì bậc của bộ lọc là 8. - Kết quả thực hiện được kiểm tra bằng cách so sánh dữ liệu mô phỏng đầu ra

trên ModelSim với các thực hiện bằng hàm trên MATLAB.

Thời gian xử lý dữ liệu của CGRA (bao gồm Thời gian ghi, đọc dữ liệu và thời gian thực thi phép toán) trong Bảng 11 được thực hiện bằng cách đo trực tiếp trên giản đồ sóng (trong của sổ wave của ModelSim). òn đối với vi xử lý Nios v DSP được thực hiện đo số lượng xung nhịp bằng các công cụ lập trình của hãng sản xuất chip.

ể so sánh với các cách thực hiện tính toán thông thường trên vi xử lý, và DSP, các phép toán được viết bằng chương trình v chạy trên các nền tảng khác nhau:

- Trường hợp 1: Với vi xử lý Nios II (cấu hình fast) được thực hiện trên kit phát triển DE4 của Terasic với tảng FPGA Stratix IV của Altera.

- Trường hợp 2: được thực hiện với DSP C6678 (loại 8 lõi DSP) của Texas Instrument trên kit phát triển TMS320C6678.

Tất cả các phép đo đều được tính theo số lượng xung nhịp cần thực hiện của cả quá trình cần xử lý.

Bảng 11: So sánh tốc độ thực hiện của CGRA với các giải pháp khác nhau

Vòng lặp Kích thƣớc dữ liệu Lõi NIOS (Altera) DSP (dùng code C thông thƣờng) DSP (dùng thƣ viện riêng) CGRA (ModelSim) Phép tổng SUM N=1024 29 148 24 117 X 1045 N=2048 58 142 48 181 X 2096 N=4096 116 128 96 301 X 4117 Tích vô hướng N=1024 64 622 30 827 555 2096 N=2048 128 864 61 827 1 067 4117 N=4096 257 344 122 987 2 083 8213 FIR (8 tap) N=1024 407 765 X 7 216 1043 N=2048 816 384 X 14 384 2067 N=4096 1 641 778 X 29 736 4115

Kích thước dữ liệu N trong Bảng 11 ứng với các phép toán như sau:

- Phép tổng SUM: N là chiều dài của một dãy {x1, x2, …, xN} cần tính tổng - Phép tích vô hướng <X,Y>: N là số chiều của hai vector X= {x1, x2, …, xN} và

Y= {y1, y2, …, yN}

- Phép tính FIR được thực hiện với bộ lọc có hệ số{h7, h6, …, h0}: N l độ dài dãy dữ liệu đầu vào X={x1, x2, …, xN}

Theo kết quả ở Bảng 11, vi xử lý mềm NIOS của Altera hay DSP (dòng cao cấp Keystone của TI) khi thực hiện trên lệnh lặp FOR thông thường mất một lượng xung nhịp đáng kể. Qua quá trình phân tích lệnh ASSEMBLY trên NIOS cho thấy: trong mỗi thời gian thực hiện một vòng lặp, bên cạnh việc thực hiện phép toán (chiếm ít xung nhịp) thì vi xử lý phải thực hiện tối thiểu các thao tác khởi tạo các địa chỉ dữ liệu cho việc nạp dữ liệu, kiểm tra vòng lặp chiếm rất nhiều thời gian. Do đó hiệu suất tính toán của NIOS khá thấp. DSP khi thực hiện bằng lệnh FOR thông thường cũng gặp vấn đề tương tự. DSP khi thực hiện với thư viện tối ưu của hãng cho thấy tốc độ được cải thiện rất nhiều so với việc sử dụng vòng FOR truyền thống.

Kết quả mô phỏng CGRA trên Model cho thấy tốc độ thực hiện tương đương với DSP, ở một số kết quả thực hiện có thể tốt hơn. Tốc độ tính toán của GR được cải thiện do thực hiện song song quá trình nạp dữ liệu và tính toán cùng lúc.

ẾT UẬ

Trong thời gian tìm hiểu và nghiên cứu dưới sự giúp đỡ tận tình của thầy hướng dẫn PGS.TS Trần Quang Vinh và TS.Nguyễn Ki m Hùng, đến nay toàn bộ nội dung của luận văn đã được ho n th nh đáp ứng đầy đủ các yêu cầu đã đặt ra. Qua quá trình tìm hiểu thực hiện đề t i, tôi đã thu được những kết quả chính như sau:

- Tìm hiểu xu hướng nghiên cứu CGRA trên thế giới, tr n cơ sở phân tích một số kiến trúc GR đã được thực hiện trên thế giới, đưa ra phương án thiết kế CGRA có thể sử dụng trong kỹ thuật điều khiển.

- Thiết kế đã được mô hình hóa bằng ngôn ngữ VHDL (trong đó RCA của CGR được mô hình hóa ở mức RTL) và tiến hành mô phỏng, so sánh với các

Một phần của tài liệu (LUẬN văn THẠC sĩ) nghiên cứu thiết kế mảng tái cấu hình kiến trúc thô CGRA ứng dụng cho kỹ thuật điều khiển luận văn ths công nghệ điện tử viễn thông 60 52 02 03 (Trang 42)