Các thiết bị Mercury, APEX 20K (2.5 V), ACEX 1K, và FLEX 10K có thể được cấu hình sử dụng 1 trong 4 sơ đồ: cấu hình nối tiếp bị động (PS), cấu hình đồng bộ song song bị động (PPS), cấu hình không đồng bộ
song song bị động (PPA), và cấu hình nhóm hoạt động kiểm tra chung
(JTAG). Các sơ đồ cấu hình được lựa chọn bằng cách điều khiển các chân MSEL1, MSEL0 ở mức cao hoặc thấp như chỉ ra ở Bảng 3.1. Nếu ứng dụng của chúng ta chỉ yêu cầu một chế độ cấu hình đơn thì chân MSEL có thể được nối với Vcc hoặc nối với đất. Nếu ứng dụng của chúng ta yêu cầu nhiều hơn một cấu hình, bạn có thể chuyển mạch chân MSEL sau khi FPGA được cấu hình thành công. Các chân này trong suốt chế độ người sử dụng được chốt cố định để không ảnh hưởng đến hoạt động của thiết bị; tuy nhiên các chân MSEL phải hợp lệ trước khi tái cấu hình được khởi tạo.
Bảng 3.1. Lựa chọn sơ đồ cấu hình cho
Mercury, APEX 20K(2.5V), ACEX 1K, và FLEX 10K
MSEL1 MSEL0 Sơ đồ cấu hình
0 0 PS
1 0 PPS
1 1 PPA
(1) (1) JTAG (2)
(1)Không để những chân MSEL thả nổi, kết nối chúng đến một mức
cao hay mức thấp. Những chân này hỗ trợ sơ đồ định cấu hình non-JTAG sử dụng trong sản phẩm. Nếu chỉ cấu hình JTAG được sử dụng, bạn nên kết nối những chân MSEL xuống đất.
(2) Cấu hình dựa trên JTAG phải ưu tiên hơn những sơ đồ cấu hình khác, có nghĩa là những chân MSEL không được để ý đến
Sử dụng dữ liệu trong bảng 8-2 đến 8-5 để ước lượng kích thước file trước khi biên soạn thiết kế. Các dạng file cấu hình khác nhau
Bảng 3-2. Kích thước file Raw binary (.rbf) của Mercury
Thiết bị Kích thước dữ liệu (Bit)
Kích thước dữ liệu (byte)
EP1M120 1.303.120 162.890
Bảng 3-3. Kích thước file Raw binary (.rbf) của APEX 20K (2.5V)
Thiết bị Kích thước dữ liệu (Bit) Kích thước dữ liệu (byte) EP20K100 993.360 124.170 EP20K200 1.950.800 243.850 EP20K400 3.880.720 485.090
Bảng 3-4. Kích thước file Raw binary (.rbf) của ACEX 1K
Thiết bị Kích thước dữ liệu (Bit) Kích thước dữ liệu (byte) EP1K10 159.160 19.895 EP1K30 473.720 59.215 EP1K50 784.184 98.023 EP1K100 1.335.720 166.965
Bảng 3-5. Kích thước file Raw binary (.rbf) của FLEX 10K
Thiết bị Kích thước dữ liệu (Bit) Kích thước dữ liệu (byte) EPF10K30E 473.720 59.215 EPF10K50E 784.184 98.023 EPF10K50S 784.184 98.023 EPF10K100B 1.200.000 150.000 EPF10K100E 1.335.720 166.965 EPF10K130E 1.838.360 229.795 EPF10K200E 2.756.296 344.537 EPF10K200S 2.756.296 344.537 EPF10K10A 120.000 15.000 EPF10K30A 406.000 50.750 EPF10K50V 621.00 77.625 EPF10K100A 1.200.000 150.000 EPF10K130V 1.600.000 200.000 EPF10K250A 3.300.00 412.500 EPF10K10 118.000 14.750 EPF10K20 231.000 28.875 EPF10K30 376.000 47.000 EPF10K40 498.000 62.250 EPF10K50 621.000 77.625 EPF10K70 892.000 111.500 EPF10K100 1.200.00 150.000 2.3.4.1. Sơ đồ cấu hình PS
Chúng ta có thể thực hiện đặt cấu hình PS cho Mercury, APEX 20K (2.5 V), ACEX 1K, và FLEX 10K sử dụng một thiết bị cấu hình Altera, một máy chủ thông minh (ví dụ một bộ VXL hoặc thiết bị MAX Altera), hoặc một cáp download.
2.3.4.1.1. Cấu hình PS sử dụng một thiết bị cấu hình
Chúng ta có thể sử dụng một thiết bị cấu hình Altera như một thiết bị cấu hình nâng cao, thiết bị EPC2 hoặc EPC1, để cấu hình cho Mercury, APEX 20K (2.5 V), ACEX 1K, và FLEX 10K sử dụng một chùm bit cấu hình nối tiếp. Dữ liệu cấu hình được lưu trữ trong thiết bị cấu hình. Hình 2.11 thể hiện những kết nối giao tiếp cấu hình giữa Mercury, APEX 20K (2.5 V), ACEX 1K, và FLEX 10K với một thiết bị đặt cấu hình
Hình 2.11. Cấu hình PS thiết bị đơn sử dụng một thiết bị cấu hình
2.4.1.2. Cấu hình PS sử dụng một bộ vi xử lý
Trong các sơ đồ cấu hình PS, một máy chủ thông minh (ví dụ như một bộ VXL hoặc CPLD) có thể truyền dữ liệu cấu hình từ một thiết bị lưu trữ (chẳng hạn như bộ nhớ flash) cho các thiết bị Mercury, APEX 20K (2.5 V), ACEX 1K, và FLEX 10K. Dữ liệu cấu hình có thể được lưu trữ dưới dạng file RBF (Raw Binary File), HEX (Hexcimal), hoặc TTF(Tabular Text
File). Hình 2.12 thể hiện kết nối giao diện cấu hình giữa Mercury, APEX 20K (2.5V), ACEX 1K, hoặc FLEX 10K và một bộ VXL cho sơ đồ cấu hình một thiết bị đơn.
Hình 2.12 Cấu hình PS sử dụng một bộ vi xử lý
Hình 2.13 D ạng sóng thời gian của sơ đồ cấu hình PS
sử dụng một bộ vi xử lý
Ta có giá trị các tham số của giản đồ thời gian như sau:
Bảng 3.6. Tham số thời gian của sơ đồ PS cho FLEX 10K
nhỏ nhất lớn nhất vị tCF2CD từ khi nCONFIG xuống thấp đến
khi CONF_DONE thấp
200 ns
tCF2ST0 từ khi nCONFIG xuống thấp đến khi nSTATUS xuống thấp
200 ns
tCFG Độ rộng xung nCONFIG 2 ns
tSTATUS Độ rộng xung nSTATUS 1 10 (1) ns
tCF2ST1 từ khi nCONFIG chuyển lên mức cao đến nSTATUS ở mức cao
4 (1) ns tCF2CK nCONFIG mức cao đến sườn lên
đầu tiên của DCLK
5 ns
tST2CK Thời gian từ lúc nSTATUS mức cao đến sườn lên của DCLK
1 tDSU Thời gian SETUP dữ liệu trước
khi có sườn lên của DCLK
10 ns
tDH Thời gian giữ dữ liệu sau khi có sườn lên DCLK
0 ns
tCH Thời gian DCLK ở mức cao 30 ns
tCL Thời gian DCLK ở mức thấp 30 ns
tCLK Chu kỳ DCLK 60 ns
tMAX Tần số lớn nhất của DCLK 16.7 MHz
tCD2UM Thời gian từ khi CONFIG_DONE ở mức cao đến khi FLEX đi vào
chế độ người dùng (2)
0.6 2 ns
Trong đó chú ý là :
(1) Giá trị này đạt được nếu người dùng không giữ chậm cấu hình bằng cách mở rộng xung nSTATUS.
(2) Những số nhỏ nhất và lớn nhất chỉ thích hợp khi DCLK được chọn là nguồn đồng hồ cho hoạt động của thiết bị. Nếu nguồn đồng hồ là SCLKUSR, nhân giá trị chu kỳ đồng hồ với 10 ta sẽ được giá trị này.
2.2.4.1.3. Sơ đồ cấu hình PS nhiều cho nhiều thiết bị sử dụng một thiết bị cấu hình
Hình 2.14 đưa ra cách cấu hình cho nhiều thiết bị FPGA một lúc trong sơ đồ cấu hình nối tiếp bị động, sử dụng một thiết bị cấu hình.
Hình 2.14 Sơ đồ cấu hình PS cho nhiều thiết bị sử dụng
một thiết bị cấu hình
Trong sơ đồ cấu hình PS cho nhiều thiết bị FPGA, chân nCE của thiết bị đầu tiên được nối đất, trong khi chân nCEO của nó được kết nối đến chân nCE của thiết bị tiếp theo trong một chuỗi. Đầu vào chân nCE của thiết bị cuối cùng được nối đến từ thiết bị trước đó, trong khi chân nCEO của nó ở mức trở kháng cao (không kết nối No Connect - N.C). Sau khi thiết bị đầu tiên hoàn thành cấu hình trong một chuỗi nhiều thiết bị được cấu hình, chân nCEO của nó sẽ được kéo xuống mức thấp để tích cực chân nCE của thiết bị thứ 2, để báo cho thiết bị thứ 2 bắt đầu cấu hình. Tất cả những chân cấu hình khác (nCONFIG, nSTATUS, DCLK, DATA0 và CONF_DONE) được nối đến tất cả thiết bị được cấu hình trong một chuỗi. Chúng ta nên dành một chú ý đặc biệt cho những tín hiệu cấu hình bởi vì chúng có thể yêu cầu đệm để đảm bảo tính đúng đắn của tín hiệu và ngăn chặn những vấn đề của lệch đồng hồ. Đặc biệt, chắc chắn rằng những đường DATA và DCLK được đệm cho mọi thiết bị thứ tư.
Khi cấu hình cho nhiều thiết bị, giai đoạn cấu hình không bắt đầu đến khi tất cả các thiết bị giải phóng các chân nSTATUS và chân OE của
chúng. Tương tự như thế tất cả các thiết bị bước vào giai đoạn khởi tạo và giai đoạn của chế độ người dùng là cùng một thời điểm do tất cả các chân CONF_DONE của chúng được nối cùng với nhau, nối đến chân nCS của thiết bị cấu hình.
Tất cả các chân nSTATUS và CONF_DONE được nối cùng với nhau, nếu bất cứ một thiết bị nào phát hiện có lỗi, giai đoạn cấu hình sẽ dừng lại trên toàn bộ chuỗi và toàn bộ chuỗi sẽ phải cấu hình lại. Chẳng hạn, nếu thiết bị FPGA phát hiện có lỗi trên chân nSTATUS, nó khởi động lại chuỗi bằng cách kéo tín hiệu ở chân nSTATUS của nó xuống mức thấp. Mức tín hiệu thấp trên chân nSTATUS này kéo mức tín hiệu trên chân OE xuống thấp trên thiết bị cấu hình và kéo chân nSTATUS trên tất cả các thiết bị FPGA xuống mức thấp, làm cho tất cả các thiết bị FPGA sẽ tham gia vào giai đoạn khởi động. Hành vi này giống như đối với sơ đồ cấu hình bị động nối tiếp cho một thiết bị FPGA đơn khi phát hiện một lỗi.
Thiết bị cấu hình nâng cao cũng được hỗ trợ cấu hình nối tiếp cho đến 8 thiết bị. Chế độ cấu hình nối tiếp n - bit (n = 1, 2, 4, 8) cho phép một thiết bị cấu hình nâng cao cấu hình cùng một lúc cho nhiều thiết bị hoặc một chuỗi các thiết bị FPGA. Thêm vào đó, những thiết bị không phải cùng một họ hay cùng mật độ, chúng có thể là bất cứ sự kết hợp nào của những Altera FPGA. Mỗi một đường DATA riêng lẻ của thiết bị cấu hình nâng cao dành cho mỗi thiết bị FPGA đích. Mỗi đường DATA có thể cung cấp cho một chuỗi các FPGA. Hình 2.15 đưa ra sơ đồ cấu hình PS được sử dụng để cấu hình đồng thời cho nhiều thiết bị FPGA sử dụng một thiết bị cấu hình nâng cao khi các thiết bị nhận cùng một dữ liệu cấu hình như nhau (thiết bị cấu hình nâng cao ở đây có thể là EPC4, EPC8, EPC16)
Hình 2.15 Sơ đồ cấu hình PS cho nhiều thiết bị FPGA sử dụng một thiết bị
cấu hình với cùng một dữ liệu cấu hình cho các FPGA.
Hình 2.16 dưới đây đưa ra sơ đồ cấu hình PS cho nhiều thiết bị FPGA nhưng mỗi thiết bị nhận một dữ liệu khác nhau, trên một đường DATA riêng biệt.
Hình 2.16 Sơ đồ cấu hình PS cho nhiều thiết bị FPGA
với những đường DATA riêng biệt, sử dụng một thiết bị cấu hình nâng cao
Trong sơ đồ hình 2.16 tất cả các chân nCE của các thiết bị FPGA đều nối đất, trong khi các chân nCEO đều không nối (hay ở mức trở kháng
cao). Tất cả những chân cấu hình khác (nCONFIG, nSTATUS, DCLK, DATA0, CONF_DONE) đều được nối đến mọi thiết bị trong một chuỗi.
2.2.4.1.4. Sơ đồ cấu hình PS dùng bộ vi xử lý cho nhiều thiết bị FPGA
Hình vẽ dưới đây đưa ra sơ đồ cấu hình PS cho nhiều thiết bị FPGA sử dụng một bộ vi xử lý. Trong sơ đồ này, chân nCE của thiết bị đầu tiên được kết nối đến GND trong khi chân nCEO của nó được kết nối đến chân nCE của thiết bị tiếp theo trong một chuỗi. Đầu vào của chân nCE của thiết bị cuối cùngđược nối đến từ chân nCEO của thiết bị trước đó, trong khi chân nCEO của nó ở mức trở kháng cao hay là không kết nối. Sau khi thiết bị đầu tiên hoàn thành việc cấu hình, nó sẽ kéo chân nCEO của nó xuống mức thấp để tích cực chân nCE của thiết bị FPGA tiếp ngay sau nó, báo cho thiết bị này biết để bắt đầu vào giai đoạn cấu hình. Thiết bị FPGA thứ 2 trong một chuỗi bắt đầu cấu hình với một chu kỳ đồng hồ; do đó việc truyền của dữ liệu đích là trong suốt đối với bộ vi xử lý. Tất cả những chân cấu hình khác (nCONFIG, nSTATUS, DCLK, DATA0, và CONF_DONE) được nối đến mọi thiết bị trong một chuỗi. Bạn cũng cần chú ý đến những chân tín hiệu cấu hình bởi vì chúng yêu cầu đệm để chắc chắn tính đầy đủ của dữ liệu và loại bỏ vấn đề xiên xung đồng hồ. Đặc biệt, chắc chắn rằng mọi những đường DCLK và DATA được đệm cho mọi thiết bị thứ tư. Bởi vì mọi chân CONF_DONE của tất cả những thiết bị FPGA đều được nối cùng với nhau nên tất cả các thiết bị sẽ được khởi tạo và bắt đầu chế độ người sử dụng cùng một lúc.
Do tất cả các chân nSTATUS và CONF_DONE đều được nối đến cùng với nhau nên khi một thiết bị nào đó phát hiện thấy có lỗi, quá trình cấu hình sẽ dừng lại cho toàn bộ chuỗi và toàn bộ chuỗi phải được cấu hình lại.
Hình 2.17 Sơ đồ cấu hình PS cho nhiều thiết bị FPGA
sử dụng một bộ vi xử lý 2.2.4.2. Sơ đồ cấu PPS
Sơ đồ cấu hình PPS, sử dụng một máy chủ thông minh (như một vi xử lý) để truyền dữ liệu cấu hình từ một thiết bị lưu trữ (như bộ nhớ flash) đến thiết bị đích như Mercury, APEX 20K (2.5 V), ACEX 1K hoặc FLEX 10K. Dữ liệu cấu hình cũng có thể được lưu trữ trong những định dạng TTF, RBF, hay HEX. Hệ thống máy chủ sẽ đưa từng byte dữ liệu và đưa đến thiết bị FPGA theo xung đồng hồ hệ thống để đồng bộ. Thiết bị đích sẽ chốt dữ liệu trên các chân DATA [0..7] ở sườn lên của xung đồng hồ DCLK được đưa đến từ máy chủ, sau đó sử dụng 8 sườn xuống tiếp theo của xung đồng hồ DCLK để đưa dữ liệu ở bên trong. Trên sườn lên của xung DCLK thứ 9, byte dữ liệu tiếp theo sẽ được chốt ở trong thiết bị đích. Hình 2.18 đưa ra những kết nối giao tiếp giữa FPGA và một bộ vi xử lý với một thiết bị cấu hình đơn. Một điều đáng chú ý trong sơ đồ này, nếu chân CS không sử dụng thì có thể được kết nối trực tiếp đến một nguồn Vcc. Còn chân nCS có thể được kết nối trực tiếp đến GND.
Khi bật nguồn, Mercury, APEX 20K (2.5 V), ACEX 1K, FLEX 10K sẽ bước vào giai đoạn Reset khoảng 5µs. Trong suốt quá trình này, thiết bị
trạng thái trở kháng cao. Khi FPGA ra khỏi giai đoạn Reset, tất cả các chân I/O người dùng vẫn ở trạng thái trở kháng cao. Hoạt động của chu trình cấu hình cho các FPGA trong sử dụng chế độ cấu hình PPS cũng có 3 giai đoạn: khởi động (Reset), cấu hình, và khởi tạo. Khi nCONFIG hoặc nSTATUS xuống thấp thì thiết bị FPGA ở giai đoạn khởi động. Để khởi tạo trong sơ đồ cấu hình PPS, bộ vi xử lý phải tạo ra sự chuyển từ mức thấp lên mức cao của tín hiệu nCONFIG.
Hình 2.18 Sơ đồ cấu hình PPS cho một thiết bị đơn dùng bộ vi xử lý
Ta có giản đồ thời gian của sơ đồ cấu hình PPS sử dụng bộ vi xử lý như sau:
Hình 2.19 Giản đồ thời gian của sơ đồ cấu hình PPS
Chú ý là:
(1): khi bật nguồn, thiết bị FPGA giữ chân nSTATUS ở mức thấp
khoảng 5ns sau khi Vcc ổn định
(2): sau khi bật nguồn, trước và trong khi cấu hình, CONF_DONE ở
mức thấp
(3): DATA0 và DCLK không nên để ở thả nổi sau cấu hình. Nên kéo
những chân này lên mức cao hay để ở mức thấp. DATA[7..1] và RDYnBSY nên được cho phép như những chân I/O sau khi cấu hình và trạng thái của những chân này phụ thuộc vào trong thiết kế đã được lập trình bên trong thiết bị của bạn.
(4) Chân RDYnBSY không được yêu cầu trong chế độ PPS. Dữ liệu
cấu hình có thể được gửi mỗi 8 chu kỳ đồng hồ không cần có sự giám sát chân trạng thái này.
2.2.4.3. Sơ đồ cấu hình PPA
Sơ đồ cấu hình PPA sử dụng một máy chủ thông minh (như một bộ vi xử lý), để truyền dữ liệu cấu hình từ một thiết bị lưu trữ (như bộ nhớ flash), đến những thiết bị đích FPGA như: Mercury, APEX 20K (2.5 V), ACEX 1K, và FLEX 10K. Dữ liệu cấu hình có thể được lưu trữ dưới dạng TTF, RBF, hay HEX. Máy chủ sẽ truyền dữ liệu theo hướng byte và đi cùng với những tín hiệu đồng bộ đến FPGA. Khi sử dụng PPA, không nên kéo chân DCLK lên cao thông qua một điện trở 1kΩ để ngăn chặn những chân đầu vào cấu hình không sử dụng ở mức trở kháng cao. Hình 2.20 đưa ra những giao tiếp cấu hình giữa FPGA và một vi xử lý trong sơ đồ cấu hình PPA cho một thiết bị đơn. Bộ vi xử lý hoặc bộ giải mã địa chỉ có thể điều khiển những chân chọn chip của thiết bị, nCS và CS. Bộ giải mã địa chỉ cho phép bộ vi xử lý chọn thiết bị FPGA bằng việc truy nhập một địa chỉ đặc biệt