You are on page 1of 25

NetFPGA Project TUTORIAL

YÊU CẦU:
    Board NetFPGA 1G. NetFPGA Package 2.2 Xilinx ISE 10.1i. Đã cài đặt và cấu hình môi trường phát triển.

Contents
Bài 1 Giới thiệu cấu trúc project trong NetFPGA Platform ............................................... 5 Mục tiêu:................................................................................................................................. 5 I. Cấu trúc project trên NetFPGA Platform ......................................................................... 5 1. 2. II. 1. 2. 3. III. Bài 2 Cấu trúc cây thư mục NetFPGA project .................................................................. 5 Cấu trúc của một project ........................................................................................... 5 Thực hành với project mẫu trên NetFPGA. .................................................................. 6 Reference NIC .......................................................................................................... 6 Biên dịch và nạp lên board........................................................................................ 6 Kiểm tra thiết kế: ...................................................................................................... 6 Bài tập: .......................................................................................................................... 9 Xây dựng project mới trên NetFPGA ..................................................................... 10

Mục tiêu:............................................................................................................................... 10 I. Quy trình để triển khai một project trên NetFPGA platform ......................................... 10 II. III. 1. 2. IV. Bài 3 Cấu trúc project template để phát triển ứng dụng trên NetFPGA. ............................. 10 Thực hành tạo project với module cổng AND. .......................................................... 11 Thêm module vào teamplate. .................................................................................. 11 Biên dịch và nạp lên board NetFPGA..................................................................... 12 Bài tập ......................................................................................................................... 13 Giao tiếp dữ liệu với board NetFPGA .................................................................... 14

Mục tiêu:............................................................................................................................... 14 I. Giới thiệu Module nf2_reg_grp. .................................................................................... 14 II. 1. 2. 3. III. 1. 2. 3. Hiện thực module giao tiếp. ....................................................................................... 16 Viết chương trình module giao tiếp: ....................................................................... 16 Tạo Project mới ....................................................................................................... 17 Biên dịch và nạp lên board NetFPGA..................................................................... 19 Kết hợp module người dung và module đọc ghi dữ liệu. ........................................... 19 Chuẩn bị source code: ............................................................................................. 19 Tạo project mới ....................................................................................................... 21 Biên dịch và nạp lên board NetFPGA..................................................................... 23

.....................IV............................................................... 24 ................................ Bài tập: ......

cpci_core_interface trong nf2_core.MỤC LỤC HÌNH Hình 1: menu.v 23 .lst trước khi sửa Error! Bookmark not defined. 15 Hình 4: Code khai báo biến vùng nhớ CORE Hình 5: Code phần CORE 15 17 Hình 6: Module cpci_core_interface Hình 7: Khai báo các biến cho module cpci_core_interface Hình 8: Truyền các biến vào module nf2_reg_grp 18 18 Hình 9: Truyền các biến vào module cpci_core_interface Hình 10: Module cpci_core_interface viết lại 21 18 Hình 11: Khai báo các biến cho module cpci_core_interface Hình 12: Truyền các biến vào module nf2_reg_grp 22 22 Hình 13: AND_GATE.lst sau khi sửa Error! Bookmark not defined. Hình 3: menu.

Project được phát triển trên NetFPGA là một thiết kế hoàn chỉnh. Cấu trúc của một project 2.  cpci_reprogrammer: project cho việc lập trình lại cho Spartan.  gui_scone: project sử dụng Java GUI cho các thiết kế NetFPGA. bao gồm một thành phần phần cứng.1. o lib : chứa những module ổn định và những thành phần cần cho việc mô phỏng  C : chứa các công cụ phần mềm và đoạn mã để người thiết kế tham khảo.  dram_queue_test: project dùng để test DRAM queues. o projects : chứa các project của người dùng và các project tham khảo có sẵn:  reference_nic: project tham khảo chức năng của card mạng.  dram_router: project router IPv4 4 port dùng DRAM queues.  reference_router: project tham khảo router IPv4 4 port. . 1.NF2 : thư mục gốc o bin : chứa script dùng để mô phỏng và thiết lập môi trường hoạt động.  cpci: project cho thiết bị Spartan.  contrib: chứa những module được đóng góp bởi người dùng NetFPGA. Biên dịch và hiện thực một project có sẵn lên board NetFPGA. I. và các thành phần phần mềm liên quan.  reference_switch: project tham khảo switch Ethernet 4 port. Cấu trúc project trên NetFPGA Platform Cấu trúc cây thư mục NetFPGA project Người sử dụng tương tác với NetFPGA thông qua các project và module. Cấu trúc cây thư mục chính của NetFPGA được tổ chức theo sơ đồ bên dưới:  NetFPGA2.  core: chứa những module được sử dụng bởi các project tham khảo.  Perl5 : chứa các thư viện perl .  wireshark_dissectors: project dùng Wiresharp dissectors cho việc phân tích các gói tin của NetFPGA.  scone: phần mềm cho những thành phần của NetFPGA. các kiểm nghiệm (mô phỏng và kiểm tra phần cứng hồi quy).  selftest: project dùng để test tất cả các phần của NetFPGA.Bài 1 Mục tiêu:   Giới thiệu cấu trúc project trong NetFPGA Platform Hiểu được cấu trúc project của NetFPGA Platform.  Makefiles : các makefile khác nhau cần thiết cho mô phỏng và tổng hợp. Các module nhỏ được thiết kế có thể tái sử dụng.  Verilog : chứa các module và tập tin Verilog có thể được sử dụng lại khi thiết kế.

đầu tiên cần phải cấu hình địa chỉ IP cho interface nf2cX. Để làm được điều này.Gồm: o src : chứa tất cả code verilog thiết kế của project được dùng tổng hợp và mô phỏng. a) Kiểm tra thiết kế: Phần mềm counterdump Muốn sử dụng counterdump.x.  Thực hành với project mẫu trên NetFPGA.bit or ~/netfpga/lib/C/download/nf_download ~/netfpga/bitfiles/reference_nic.sh  Thực hiện biên dịch thiết kế.xco cần thiết để tạo các IPCore của hãng và makefile để hiện thực project o sw : chứa tất cả các thành phần phần mềm của thiết kế o include : chứa các file macro và các file cần thiết cho tổng hợp và mô phỏng khác II.x Tiếp theo.pl –all nf_download –i nf2c0 ~/netfpga/projects/reference_nic/synth/nf2_top_par. 1.x. o synth : chứa file . cần phải compile phần mềm. Reference NIC Biên dịch và nạp lên board Cài đặt biến môi trường cho quá trình biên dịch sudo source /opt/Xilinx/10.1/ISE/settings32. Thực hiện lệnh sau: . cd ~/netfpga/projects/reference_nic/synth sudo make  Nạp lên board cpci_reprogram. 2.bit 3. thực hiện câu lệnh sau: /sbin/ifconfig nf2cX x.

Thực hiện lệnh sau: ./counterdump Kết quả sẽ có dạng như sau: Found net device: nf2c0 Num pkts received on port 0: Num pkts dropped (rx queue 0 full): Num pkts dropped (bad fcs q 0): Num bytes received on port 0: Num pkts sent from port 0: Num bytes sent from port 0: Num Num Num Num Num Num Num Num Num Num Num Num Num Num Num Num Num Num pkts received on port 1: pkts dropped (rx queue 1 full): pkts dropped (bad fcs q 1): bytes received on port 1: pkts sent from port 1: bytes sent from port 1: pkts received on port 2: pkts dropped (rx queue 2 full): pkts dropped (bad fcs q 2): bytes received on port 2: pkts sent from port 2: bytes sent from port 2: pkts received on port 3: pkts dropped (rx queue 3 full): pkts dropped (bad fcs q 3): bytes received on port 3: pkts sent from port 3: bytes sent from port 3: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 b) Sử dụng send_pkts Bây giờ chúng ta sẽ tiến hành truyền nhận một số packet và kiểm tra giá trị của counter lại lần nữa. Chức năng của counterdump đơn giản chỉ là đọc nội dung của một số bộ counter và hiện thị lên trên màn hình.cd ~/netfpga/lib/C/nic make Lệnh trên sẽ tiến hành biên dịch một số công cụ đi kèm với project reference_nic. Phần mềm này cho phép gửi một gói tin Ethernet tùy ý. Đầu tiên cần phải biên dịch: . trong đó có counterdump. Một trong những công cụ đi kèm với NetFPGA package cho phép thực hiện chức năng này là send_pkts.

sử dụng câu lệnh sau: cd ~/netfpga/lib/C/tools/send_pkts sudo ./send_pkts -i nf2c0 -s 10 -l 100 Lệnh trên sẽ gửi 10 packet từ port 0 trên board NetFPGA.c Bước tiếp theo ta thử gửi một vài packet. ~/netfpga/lib/C/nic/counterdump Kết quả sẽ có dạng như sau: .cd ~/netfpga/lib/C/tools/send_pkts make Output sẽ có dạng nhưu sau: gcc `libnet-config --defines --cflags` -O2 -o send_pkts `libnet-config --libs` -L/usr/lib-lnet -lpcap --static send_pkts. để thực hiện. Bây giờ kiểm tra lại giá trị của counter. mỗi packet dài 100bytes.

2.org/foswiki/bin/view/NetFPGA/OneGig/Guide . Tham khảo thêm  http://netfpga. Làm rõ các vấn đề sau:  Tại sao thư mục src của project Reference NIC không cần verilog sourcefile. Bài tập: 1.Found net device: nf2c0 Num pkts received on port 0: Num pkts dropped (rx queue 0 full): Num pkts dropped (bad fcs q 0): Num bytes received on port 0: Num pkts sent from port 0: Num bytes sent from port 0: Num Num Num Num Num Num Num Num Num Num Num Num Num Num Num Num Num Num pkts received on port 1: pkts dropped (rx queue 1 full): pkts dropped (bad fcs q 1): bytes received on port 1: pkts sent from port 1: bytes sent from port 1: pkts received on port 2: pkts dropped (rx queue 2 full): pkts dropped (bad fcs q 2): bytes received on port 2: pkts sent from port 2: bytes sent from port 2: pkts received on port 3: pkts dropped (rx queue 3 full): pkts dropped (bad fcs q 3): bytes received on port 3: pkts sent from port 3: bytes sent from port 3: 0 0 0 0 10 1000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 III.  Những module nào được sử dụng trong project Reference NIC và vị trí của nó. Phân tích cấu trúc project của Reference NIC.

o Tạo thư mục chính cho project mới đặt trong ~/NetFPGA/project/ o Tạo các thư muc con cần thiết trong thư mục project mới: src. Bước 5: Thiết lập các file cần thiết tổng hợp. o Copy makefile từ thư mục tương ứng trong project reference_nic được cung cấp sẵn của NetFPGA vào. Copy nó vào thư mục include trong project của ta.       II. Quy trình để triển khai một project trên NetFPGA platform Project mới nên tuân theo cấu trúc thư mục của project trong NetFPGA platform để thuận tiện cho việc quản lý và tái sử dụng. o Đặt tất cả các tập tin Verilog của thiết kế vào thư mục src. Bước 6: Biên dịch và nạp nên board NetFPGA. đặt chúng vào thư mục sw. o Nếu có các công cụ phần mềm viết riêng cho project. coe (nếu có) vào thư mục synth. Cấu trúc project template để phát triển ứng dụng trên NetFPGA.txt và thay đổi đường dẫn trong file đến các module nếu cần thiết. I. Bước 4: Xây dựng các công cụ phát triển. việc triển khai một project được thực hiện thông qua các bước sau:  Bước 1: Tạo cấu trúc cây thư mục cho project mới. o Các tập tin xco. Tập tin này quy định các module library được sử dụng.Bài 2 Mục tiêu: Xây dựng project mới trên NetFPGA Qua bài thực hành này bạn sẽ nắm được các vấn đề sau:    Các bước cơ bản để triển khai project trên NetFPGA platform. Theo đó. Tạo một project với project template. Nắm được cấu trúc của project template. gán chân. sw.txt. o Quan sát có một tập tin đính kèm là: lib_modules.1-x. Loại bỏ những module không cần thiết khỏi file lib_include.y)  NF_DESIGN_DIR đến thư mục project vừa tạo  NF_WORK_DIR đến thư mục làm việc (chọn nơi nào nhiều dung lượng nhất trong máy chủ). Bước 7: Kiểm tra thiết kế. include. Bước 3: Bổ sung các thư viện cần thiết cho dự án. Bước 2: Bổ sung các module cần thiết cho dự án. o Thiết lập các biến môi trường  NF_ROOT đến thư mục gốc (NetFPGA2.  Cac file template bao gồm: . synth.

v. Thực hiện lệnh sau: cp -r ~/netfpga/projects/reference_nic tutorial2 Do trong reference_nic không có thư mục src nên ta cần tạo thêm thư mục src trong tutorial2 mkdir ~/netfpga/projects/tutorial2/src Bước 2: Copy các template module vào project.pl Bước 4: Chỉnh sửa các file cần thiết File nf2_core. o nf2_reg_grp.ucf cho phù hợp. Chèn code sau vào file nf2_core. Thêm module vào teamplate. Copy file nf2_top. Bước 1: Xây dựng cấu trúc thư mục Để đơn giản.v.   Copy các file nf2_top. Template đã loại bỏ những module này ra khỏi file nf2_core. DDR test. III. NetFPGA DMA controller.v trong thư viện có chứa những module không cần thiết như MAC rx and tx queues. 1. Bước 3: Thiết lập biến môi trường sudo ~/netfpga/lib/scripts/user_account_setup/user_account_setup. và chỉnh sửa file nf2_top.o nf2_top.v.v. Trong bài tutorial này chúng ta sẽ triển khai project đơn giản sử dụng module cổng AND (AND_GATE).ucf vào thư mục synch.v vào thư mục src. SRAM CONTROLLERS.v. . CPU Queues. o nf2_core. bên dưới “ADD YOUR CODE HERE” để thêm module AND_GATE vào project.v. ta sẽ tạo project mới sử dụng cấu trúc thư mục có sẵn của project reference_nic. Thực hành tạo project với module cổng AND. User data path. nf2_core.v. nf2_reg_grp.

ucf. out được gán cho chân AL5 (debug_led). assign in_1 = assign in_2 = assign out = cpci_debug_data[0]. . Bước 1: Biên dịch chương trình. Một số chú ý:    in_1 được gán cho chân T2 (cpci_debug_data[0]). chú ý các dòng: NET "cpci_debug_data<0>" NET "cpci_debug_data<1>" NET "debug_led" LOC = "T2" LOC = "P2" LOC = "AL5" | IOSTANDARD = LVCMOS25 .1/ISE/settings32. Có thể mở file nf2_top.in_2(in_2).pl –all nf_download –i nf2c0 ~/netfpga/projects/tutorial2/synth/nf2_top_par.sh Thực hiện biên dịch thiết kế. in_2 được gán cho chân P2(cpci_debug_data[1]).ucf để quan sát thêm. Biên dịch và nạp lên board NetFPGA. | IOSTANDARD = LVCMOS25 . 2.wire wire wire in_1. cpci_reprogram. in_2. out. | IOSTANDARD = LVCMOS25 . cpci_debug_data[1].out(out) ). .bit Bước 3: Kiểm tra thiết kế . Việc gán chân cho các module sẽ được thực hiện trong file nf2_top.in_1(in_1). cd ~/netfpga/projects/tutorial2/synth sudo make Bước 2: Nạp bit file xuông board NetFPGA. debug_led. AND_GATE and_2_input( . Cài đặt biến môi trường cho quá trình biên dịch sudo source /opt/Xilinx/10.

Phân tích cấu trúc project. xác định:  Những module nào được tái sử dụng. . và những module nào được tạo mới.IV. Bài tập 1.

Bài 3 Mục tiêu: Giao tiếp dữ liệu với board NetFPGA Kết thúc bài thực hành này các bạn có thể:    Hiểu được các sử lý vùng nhớ của NetFPGA Platform. giá trị 0x0000cafe o Ghi chú: mỗi board có 4 interface. vận dụng để kiểm tra thiết kế của người dùng. Công dụng và cấu trúc module nf2_reg_grp. Module nf2_grep_grp nằm trong file nf2_reg_grp. nf2c4 đến nf2c4 là của board 1. Đọc ghi dữ liệu lên board. I. Đọc từ board lên: o regread <–i interface> <address> o Ví dụ:  regread –i nf2c0 0x00c00000  . có thể tìm thấy file này trong thư mục ~\netfpga\lib\verilog\core\nf2\reference_core\src hoặc template đi kèm với bài thực hành này. nếu 2 board cùng gắn lên máy thì các interface nf2c0 đến nf2c3 là của board 0. Các vùng nhớ được định nghĩa:     Vùng core: o CORE_TAG_ADDR = 25b'0_00xxxxxx_xxxxxxxx_xxxxxxxx Vùng SRAM: o SRAM_TAG_ADDR = 25b'0_01xxxxxx_xxxxxxxx_xxxxxxxx Vùng User Data Path: o UDP_TAG_ADDR = 25b'0_1xxxxxxx_xxxxxxxx_xxxxxxxx Vùng DRAM: o DRAM_TAG_ADDR = 25b'1_xxxxxxxx_xxxxxxxx_xxxxxxxx Để đơn giản. trong bài thực hành này chúng ta chỉ xét vùng CORE_TAG_ADDR. địa chỉ 0x00c00000. Sau bài học người dùng sẽ thấy những warning đó là gì. ghi dữ liệu xuống vùng nhớ của board NetFPGA. Giới thiệu Module nf2_reg_grp. Lệnh giao tiếp từ terminal:  Ghi xuống board: o regwrite <–i interface> <address> <value> o Ví dụ:  regwrite –i nf2c0 0x00c00000 0x0000cafe  Ý nghĩa: ghi xuống board.v. các vùng khác cũng tương tự. Module nf2_reg_grp được cung cấp sẵn để có thể giao tiếp đọc. Chú ý: Khi dùng vùng nhớ CORE_TAG_ADDRESS có thể sẽ gây ra warning do trùng với vùng mô tả các ID của hệ thống.

ta phải thực hiện các bước bên dưới. Sử dụng vùng nhớ CORE: Ta cần quan tâm những đoạn code sau trong file nf2_reg_grp. Ý nghĩa: đọc từ board.v: Hình 1: Code khai báo biến vùng nhớ CORE Hình 2: Code phần CORE Giải thích một số tín hiệu được dùng:       core_reg_req: o cờ cho biết có request yêu cầu đọc hoặc ghi core_reg_rd_wr_L: o cờ cho biết request là đọc(0) hay ghi(1) core_reg_addr: o address của cùng nhớ cần truy cập core_reg_wr_data: o giá trị cần ghi xuống core_reg_ack: o tín hiệu ack khi đọc vùng nhớ từ board lên core_reg_rd_data: o giá trị của đọc lên được từ vùng nhớ của board Ví dụ 1: . giá trị của ô nhớ có địa chỉ 0x00c00000 Nếu ta đã thực hiện Ví dụ 1 thì giá trị trả về hiện lên màn hình của Ví dụ 2 sẽ là 0x0000cafe Để sử dụng được những lệnh này.

1.        regwrite –i nf2c0 0x00c00000 0x0000cafe Khi đó: core_reg_req = 1’b1 core_reg_rd_wr_L = 1’b1 core_reg_addr: = 0x00c00000 core_reg_wr_data = 0x0000cafe core_reg_ack: không quan tâm core_reg_rd_data: không quan tâm Ví dụ 2: regread –i nf2c0 0x00c00000 Khi đó:       core_reg_req = 1’b1 core_reg_rd_wr_L = 1’b0 core_reg_addr: = 0x00c00000 core_reg_wr_data không quan tâm core_reg_ack: cần set lên 1’b1 core_reg_rd_data = giá trị cần trả về II. Hiện thực module giao tiếp. Viết chương trình module giao tiếp: Tạo file cpci_core_interface.v với nội dung như sau: .

Thực hiện giống như đã học ở bài 2   Copy thư mục reference_nic và đổi thành tên tutorial3.v đã được cung cấp sẵn (template). Tạo Project mới Bước 1: Tạo cấu trúc thư mục. o nf2_core.v đã được cung cấp sẵn (template). o nf2_reg_grp. . sau đó copy vào src các file: o nf2_top.v đã được cung cấp sẵn (template).Hình 3: Module cpci_core_interface 2. Trong thư mục tutorial3.

 o cpci_core_interface. như sau:  Khai báo biến cho module cpci_core_interface: Hình 4: Khai báo các biến cho module cpci_core_interface  Truyền các biến vào module nf2_reg_grp: Hình 5: Truyền các biến vào module nf2_reg_grp  Truyền các biến vào module cpci_core_interface: Hình 6: Truyền các biến vào module cpci_core_interface . Trong thư mục tutorial3. Bước 2: Chỉnh sửa file nf2_core.v như hướng dẫn ở trên.ucf đã được cung cấp sẵn.v. thêm code vào bên dưới “ADD YOUR CODE HERE”. copy vào thư mục synth file o nf2_top.

bit Bước 3: Kiểm tra thiết kế  Tại cửa sổ terminal: Đọc lên giá trị ở địa chỉ 25’h030_0001 xem có bằng 32’hcafe1111 hay không Chú ý: địa chỉ 25h030_0001 khi nhập từ của sổ terminal sẽ bị dịch phải 2 bit. Kết hợp module người dung và module đọc ghi dữ liệu. Ở đây ta sử dụng lại module AND_GATE ở bài 2.1/ISE/settings32. cd ~/netfpga/projects/tutorial2/synth sudo make Bước 2: Nạp bit file xuông board NetFPGA.v có chỉnh sửa cho phù hợp.sh Thực hiện biên dịch thiết kế. Cài đặt biến môi trường cho quá trình biên dịch sudo source /opt/Xilinx/10. cpci_reprogram. ta phải dịch trái 2 bit giá trị 25h030_0001 rồi mới khi nhập. Bước 1: Biên dịch chương trình.pl –all nf_download –i nf2c0 ~/netfpga/projects/tutorial2/synth/nf2_top_par. regread –i nf2c0 0x00c00004  Ghi xuống một giá trị cho biến WR_DATA. Do đó. Bước 2: Hiện thực Module giao tiếp Sử dụng module cpci_core_interface. Chuẩn bị source code: Bước 1: Chuẩn bị module người dung. . thành 0x00c00004. 1. giả sử 0x00002222 regwrite –i nf2c0 0x00c00000 0x00002222  Đọc lên lại giá trị biến WR_DATA xem có phải 0x00002222 không regread –i nf2c0 0x00c00000 III.3. Biên dịch và nạp lên board NetFPGA.

v như sau: .Do module AND_GATE có 2 input và 1 output nên ta cần sửa file cpci_core_interface.

Trong thư mục tutorial4. o nf2_core. o cpci_core_interface.  Bước 2: Chỉnh sửa file nf2_core.v. như sau:  Khai báo biến cho module cpci_core_interface: . Tạo project mới Bước 1: Tạo cấu trúc thư mục. sau đó copy vào src các file: o nf2_top.v như hướng dẫn ở trên. Trong thư mục tutorial4. o nf2_reg_grp.v đã được cung cấp sẵn (template).Hình 7: Module cpci_core_interface viết lại 2. copy vào thư mục synth file o nf2_top.ucf đã được cung cấp sẵn.v đã được cung cấp sẵn (template).v đã được cung cấp sẵn (template). Thực hiện giống như đã học ở bài 2   Copy thư mục reference_nic và đổi thành tên tutorial4. thêm code vào bên dưới “ADD YOUR CODE HERE”.

cpci_core_interface và các biến cần thiết: .Hình 8: Khai báo các biến cho module cpci_core_interface  Truyền các biến vào module nf2_reg_grp: Hình 9: Truyền các biến vào module nf2_reg_grp  Thêm module AND_GATE.

1/ISE/settings32. Bước 1: Biên dịch chương trình.v 3.bit Bước 3: Kiểm tra thiết kế. Tại cửa sổ terminal: .Hình 10: AND_GATE. Cài đặt biến môi trường cho quá trình biên dịch sudo source /opt/Xilinx/10.sh Thực hiện biên dịch thiết kế.pl –all nf_download –i nf2c0 ~/netfpga/projects/tutorial2/synth/nf2_top_par. Biên dịch và nạp lên board NetFPGA. cpci_reprogram. cpci_core_interface trong nf2_core. cd ~/netfpga/projects/tutorial2/synth sudo make Bước 2: Nạp bit file xuông board NetFPGA.

Ở đây ta truyền input xuống module của mình bằng cách ghi xuống thanh ghi các biến IN_1. Sử dụng module đọc ghi thanh ghi và regread. o Output:  16 bit số BCD 4 chữ số. Hiện thực bộ chuyển đổi Binary to BCD với yêu cầu như sau:  Interface: o Input:  12 bit input số binary. IN_2.  Function: o Khi enable cho phép convert số binary 12 bit sang số BCD 4 chữ số. Bài tập: 1. giả sử 1 regwrite –i nf2c0 0x00c00004 1 Đọc lên lại giá trị biến OUT xem có phải 1 không regread –i nf2c0 0x00c00008 Chú ý: Việc đọc ghi các thanh ghi chỉ có tác dụng test module người dùng hiện thực xem có đúng không. IV. regwrite để kiểm tra chức năng. sau xem output bằng cách đọc giá trị thanh ghi OUT. regwrite để kiểm tra chức năng.  1 bit Tín hiệu enable.Đọc lên giá trị tại địa chỉ 25’h030_0004 xem có phải 0xcafe2222 hay không regread –i nf2c0 0x00c0000c Ghi xuống một giá trị cho biến IN_1. Hiện thực module truy xuất ram trên NetFPGA với yêu cầu như sau  Sử dụng blockRam: o Độ rộng: 32 bit.  Function: o Hỗ trợ cả chức ăng đọc và ghi dữ liệu. giả sử 1 regwrite –i nf2c0 0x00c00000 1 Ghi xuống một giá trị cho biến IN_2. Sử dụng module đọc ghi thanh ghi và regread. o Độ sâu: 512. . 2.

.Hint: Có thể dung ISE đế sinh ra file đặc tả cấu trúc Ram (.xco).