Chương 5: PHẦN MỀM HỖ TR THIẾT KẾ I. Phần mềm tiện ích XSTOOL Hiện nay XILINX cung cấp các công cụ cho việc lập trình họ FPGAs và CPLDs. Một vài phiên bản gần đây của phần mềm XILINX tạo ra các file dạng bitstream tương thích với mạch XS40. XESS corp. cung cấp thêm tiện ích XSTOOLs cho việc giao tiếp một máy tính với một mạch XS40. Phần mềm tiện ích XSTOOL này bao gồm các chức năng sau: Kiểm tra mạch Lập trình tạo tần số cho bộ dao động trên mạch Download các thiết kế vào KIT Nạp dữ liệu vào KIT 1. Kiểm tra mạch XS40 Mỗi lần lắp đặt mạch XS40 và các jumper ở cấu hình mặc đònh của chúng thì mạch có thể được kiểm tra bằng cách sử dụng tiện ích GUI-based GXSTEST như sau: Nhấp vào biểu tượng (đã có trên màn hình nền khi cài đặt XSTOOLS). Sau đó hiện cửa sổ: Kế tiếp, ta sẽ chọn loại cổng song song mà mạch XS40 được kết nối từ danh sách pulldown Port. GXSTEST bắt đầu với cổng LPT1 như mặc đònh, nhưng ta cũng có thể chọn cổng LPT2 hoặc LPT3 tuỳ thuộc vào cấu hình máy tính. Sau khi chọn cổng song song, ta chọn loại mạch XS40 đang cần kiểm tra từ danh sách pulldown Board Type. Sau đó nhấp chọn nút TEST để bắt đầu thủ tục kiểm tra. GXSTEST sẽ đònh dạng FPGA để chạy thủ tục kiểm tra trên mạch XS40. Sau vài giây, nếu việc kiểm tra được thực hiện thành công thì LED 7 đoạn hiển thò O. Ngược lại nếu E hiển thò trên LED 7 đoạn thì việc kiểm tra thất bại. Cửa sổ trạng thái sẽ xuất hiện trên màn hình máy tính để khai báo cho ta biết việc kiểm tra thành công hay thất bại. Nếu kiểm tra mạch XS40 thất bại, ta sẽ thấy danh sách kiểm tra thông báo nguyên nhân của việc kiểm tra không thành công đó. Nếu tình trạng không phải là một trong những nguyên nhân đó thì ta sẽ kiểm tra mạch XS40 bằng một máy tính khác. 2. Lập trình cho bộ dao động của mạch XS40 Mạch XS40/XSP có một bộ dao động lập trình được tần số 100MHz. Tần số chính 100MHz có thể được chia bởi các hệ số từ 1,2,…đến 2050 để lấy xung từ 100MHz, 50MHz, …xuống 48.7KHz tương ứng. Các tần số đã chia này được gửi đến phần còn lại của mạch XS40/XSP như một tín hiệu xung. Các số chia (ước số) được lưu trữ ở bộ nhớ cố đònh trong chip của bộ dao động để nó tiếp tục hoạt động ở tần số đã được chương trình hoá bất cứ khi nào nguồn điện được cấp cho mạch XS40/XSP. Các số chia đặc biệt có thể lưu trữ vào chip của bộ dao động bằng các sử dụng tiện ích GUI-based GXSSETCLK như sau: Nhấp chọn biểu tượng (đã có trên màn hình nền khi cài đặt XSTOOLS). Sau đó hiện ra cửa sổ: Bước kế tiếp là chọn cổng song song mà mạch XS40/XSP được kết nối từ danh sách pulldown Port. GXSSETCLK bắt đầu với cổng song song LPT1 như đã mặc đònh, nhưng ta cũng có thể chọn cổng song song LPT2 hoặc LPT3 tuỳ theo cấu hình máy tính. Sau đó chọn loại mạch XS40/XSP từ danh sách pulldown Board Type. Kế tiếp, ta đưa vào một số chia có giới hạn trong khoảng từ 1 đến 2050 vào ô Divisor và nhấp chọn nút SET. Sau đó các lệnh liên tục được cho bởi GXSSETCLK để đặt các shunt, di chuyển và lưu trữ nguồn điện trong suốt quá trình lập trình cho bộ dao động. Khi quá trình trên hoàn tất, tần số mới sẽ được lập trình để đưa vào DS1075 Tín hiệu xung ngoại có thể được thay thế cho bộ dao động nội tần số 100MHz của DS1075. Việc kiểm tra hộp chọn xung ngoại sẽ cho phép đặc tính này trong chip của bộ tạo dao động lập trình được. Nếu điều này được chọn, ta sẽ phải tự cung cấp xung ngoại cho mạch XS40/XSP thông qua chân 64 sau đó. 3. Lập trình Phần này sẽ cho biết làm thế nào để download một thiết kế logic từ máy tính vào mạch XS40 và làm sao để lưu trữ một thiết kế trong EEFROM nối tiếp tuỳ ý mà khi cấp nguồn điện vào thì nó sẽ hoạt động. a. Download các thiết kế vào mạch XS40 Trong giai đoạn triển khai và kiểm tra, thông thường ta sẽ kết nối mạch XS40 đến cổng song song của máy tính và download mạch mỗi khi thay đổi nó. Download một thiết kế FPGA vào mạch XS40 bằng cách sử dụng tiện ích GXSLOAD như sau: Nhấp chọn biểu tượng (đã có sẵn trên màn hình nền khi cài đặt XSTOOLS). Sau đó xuất hiện cửa sổ như hình: Chọn cổng song song mà mạch XS40 được kết nối đến từ danh sách pulldown Port. Thông thường GXSLOAD được mặc đònh với cổng song song LPT1 nhưng ta có thể chọn cổng song song LPT2 hoặc LPT3 tuỳ theo cấu hình của máy tính. Sau đó chọn loại mạch XS40 đang sử dụng từ danh sách pulldown Board Type. Sau khi thiết lập loại mạch và cổng song song, ta tải các file .BIT đến FPGA trên mạch XS40 bằng cách kéo chúng đến vùng FPGA/CPLD của GXSLOAD như cửa sổ bên dưới: Mỗi lần rê nút chuột trái và thả file, file có vệt sáng xuất hiện trong vùng FPGA/CPLD và nút Load trong cửa sổ GXSLOAD được cho phép. Nhấp chọn nút Load file có vệt sáng sẽ được gửi đến mạch XS40 thông qua kết nối cổng song song. Các file .BIT chứa cấu hình các bitstream được nạp vào FPGA. GXSLOAD sẽ bỏ đi những file không cho phép download. Trong suốt quá trình download, GXSLOAD sẽ hiển thò tên file và quá trình download hiện thời. Ta có thể kéo và thả nhiều file trong vùng FPGA/CPLD. Khi nhấp chọn chuột vào một file thì tên file đó sáng và chọn nó để download. Chỉ có một file có thể được chọn để download ở một thời điểm. Nhấp kép vào file có vệt sáng thì file đó sẽ không được chọn. Vì vậy không có file nào được download. Khi đó nút Load sẽ không được phép b. Lưu trữ mà không xoá các thiết kế trong mạch XS40 FPGA trên mạch XS40 lưu trữ cấu hình của nó trên chip của SRAM và được xoá bất cứ khi nào nguồn điện được ngắt. Một khi thiết kế được hoàn thành, ta có thể lưu trữ bitstream trong một EEFROM nối tiếp được đặt trên socket U7 của mạch XS40. EEFROM sẽ đònh dạng FPGA để hoạt động ngay khi nguồn điện được cấp vào. XILINX XC1700 là một loạt các EEFROM nối tiếp tương thích với mạch XS40. Hơn nữa, XC1700 chỉ có thể lập trình một lần (OTP), vì vậy cần phải có một chip mới mỗi lần thay đổi thiết kế logic. Bảng 3 liệt kê các chip EEFROM nối tiếp cần để lưu trữ các file bitstream đối với mỗi loại mạch XS40 Loại mạch XS40 Kích thước Bitstream EEPROM XILINX XS40-005E 95,008 XC17128E XS40-005XL 151,960 XC17256E XS40-010E 178,144 XC17256E XS40-010XL 283,424 XC1701 XSP-010 95,008 XC17S10 Bảng 3: Giới thiệu các EEPROM nối tiếp của hãng XILINX đối với mỗi loại mạch XS40 khác nhau Ngoài ra cần phải lựa chọn việc lưu trữ các thiết kế vào EEPROM nối tiếp AT7C256 Atmel lập trình lại được. Nếu mạch XS40-005E, XS40-005XL hoặc mạch XS40-010E được sử dụng thì mạch XS40 có thể lập trình trực tiếp trên chip Atmel và các FPGA trên các mạch này có các file bitstream có kích thước phù hợp với AT7C256. Thiết kế được nạp vào EEPROM Atmel bằng cách kéo file .BIT vào vùng Flash/EEPROM và nhấp vào nút Load. Tuần tự các bước đưa dữ liệu vào bộ nhớ là như sau: i. Toàn bộ EEPROM được xoá. ii. FPGA trên mạch XS40 được lập trình để tạo ra một giao diện giữa EEPROM và cổng song song. iii. Nội dung của file .BIT được download vào EEPROM thông qua cổng song song Mỗi lần các thiết kế được nạp vào EEPROM, các bước tiếp theo sẽ đònh dạng mạch XS40 từ EEPROM khi cấp điện i. Tháo dây cáp tải từ bộ nối J1 của mạch XS40. (Có thể sử dụng lệnh XSPORT 0 để đảm bảo 2 bit cao của cổng song song đều ở mức logic 0. Các bit này được nối đến các chân chế độ của FPGA và phải ở mức logic 0 hoặc FPGA sẽ không cấp điện ở chế độ hoạt động nối tiếp). ii. Đặt shunt ở jumper J10. Khi đó FPGA được đặt ở chế độ hoạt động nối tiếp để nó cấp một tín hiệu xung đến EEPROM và tuần tự nạp cấu hình từ EEPROM vào FPGA. iii. Tháo bỏ các shunt ở các jumper J4 và J11. Điều này ngăn cản mạch giao diện PC trên XS40 không bò nhiễu khi có tín hiệu xung từ FPGA. iv. Cấp nguồn điện vào mạch XS40. FPGA sẽ được đònh dạng từ EEPROM nối tiếp. Ta có thể nối lại dây cáp nếu cần xen các tín hiệu kiểm tra vào các thiết kế đang sử dụng chương trình XSPORT c. Download và Upload dữ liệu đến RAM hoặc từ RAM trên mạch XS40 Mạch XS40 chứa RAM 32Kbytes hoặc 128KByte, nội dung của nó có thể download và upload bằng GXSLOAD. Điều này thuận lợi cho việc khởi chạy RAM với dữ liệu sử dụng bằng FPGA và đọc nội dung của RAM sau khi FPGA hoạt động. RAM được nạp dữ liệu bằng cách kéo và thả một hoặc nhiều file .EXO, .MCS, .HEX, và/hoặc file .XES vào vùng RAM của cửa sổ GXSLOAD và sau đó nhấp vào nút Load. Tuần tự các bước đưa dữ liệu vào bộ nhớ là như sau: i. FPGA trên mạch XS40 được lập trình lại để tạo ra một giao diện giữa thiết bò RAM và cổng song song của máy tính ii. Nội dung của các file . EXO, .MCS, .HEX hoặc .XES được download vào RAM thông qua cổng song song. Dữ liệu các file sẽ viết đè lên nhau nếu đòa chỉ trùng lấp. iii. Sau khi dữ liệu đã download vào RAM, một vài file bitstream có vệt sáng trong vùng FPGA/CPLD được download vào FPGA trên mạch XS40. Ngoài ra FPGA vẫn còn đònh cấu hình như một giao diện trên RAM. Nội dung của RAM được kiểm tra bằng cách upload nó đến máy tính. Để upload dữ liệu từ một vùng đòa chỉ trong RAM, gõ các ranh giới cao và thấp vào vùng High Address và Low Address bên dưới vùng RAM và chọn dạng muốn lưu trữ dữ liệu đang sử dụng trong danh sách pulldown Upload Format. Sau đó chọn biểu tượng file, kéo và thả nó vào một vài danh mục. Tuần tự các bước đưa dữ liệu vào bộ nhớ là như sau: i. FPGA trên mạch XS40 được lập trình lại để tạo ra giao diện giữa thiết bò RAM và cổng song song của máy tính ii. Dữ liệu RAM giữa đòa chỉ cao và thấp được upload thông qua cổng song song. iii. Dữ liệu đã upload được lưu trữ ở dạng file được đặt tên là RAMUPLD có phần mở rộng tương ứng với file đònh dạng. . trữ mà không xoá các thiết kế trong mạch XS40 FPGA trên mạch XS40 lưu trữ cấu hình của nó trên chip của SRAM và được xoá bất cứ khi nào nguồn điện được ngắt. Một khi thiết kế được hoàn thành,. download một thiết kế logic từ máy tính vào mạch XS40 và làm sao để lưu trữ một thiết kế trong EEFROM nối tiếp tuỳ ý mà khi cấp nguồn điện vào thì nó sẽ hoạt động. a. Download các thiết kế vào mạch. lưu trữ các thiết kế vào EEPROM nối tiếp AT7C 256 Atmel lập trình lại được. Nếu mạch XS40-005E, XS40-005XL hoặc mạch XS40-010E được sử dụng thì mạch XS40 có thể lập trình trực tiếp trên chip