nghiên cứu và chế tạo cpu 8 bit bằng lập trình fpga

38 539 0
nghiên cứu và chế tạo cpu 8 bit bằng lập trình fpga

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

nghiên cứu và chế tạo cpu 8 bit bằng lập trình fpga

LỜI NÓI ĐẦU Trong thời đại công nghệ thông tin phát triển chóng mặt, với những ứng dụng thực tế đem lại hiệu quả và lợi ích cho con người người công nghệ thông tin đã và đang dần thay thế sức lao động đồng thời nâng cao hiệu quả hoạt đông trong các lĩnh vực của cuộc sống. Nhắc đến Công nghệ FPGA có lẽ đã không còn xa lạ gì đối với chúng ta, bởi lẽ các ứng dụng của nó đã tràn ngập ở khắp mọi ngóc ngách trong cuộc sống, kể cả những lĩnh vực con người khó hoặc không thể tiếp xúc như lĩnh vực nghiên cứu, chế tạo chíp…. Nghiên cứu và chế tạo chíp là việc làm hết sức cần thiết trong giai đoạn công nghiệp hóa hiện nay. Để chế tạo ra những loại chíp có tác dụng đúng như mong muốn, đòi hỏi của con người và của sự phát triển, có nhiều ứng dụng trong đời sống, nghiên cứu cũng như khoa học. Và thành phần quan trọng nhất của chíp chính là CPU. CPU viết tắt của chữ Central Processing Unit : đơn vị xử lí trung tâm. CPU có thể được xem như não bộ, một trong những phần tử cốt lõi nhất của chíp. Nhiệm vụ chính của CPU là xử lý các chương trình vi tính và dữ kiện. Vì vậy trong đề tài 5 chúng em đã “Nghiên cứu và chế tạo CPU 8 bit bằng lập trình FPGA” Chúng em xin chân thành cảm ơn thầy Hồ Khánh Lâm và thầy Phạm Ngọc Hưng cùng các thầy giáo trong bộ môn KTMT đã tạo điều kiện giúp chúng em hoàn thành đề tài một cách thuận lợi. Hưng Yên, tháng 12 năm 2011 Nhóm sinh viên thực hiện : 1: Bùi Anh Tuấn 2: Lê Thị Kim Oanh 3: Dương Hữu Thái 4: Nguyễn Văn Phong CHƢƠNG I: GIỚI THIỆU VỀ FPGA 1.1. Cấu trúc chung của FPGA Trong khi tồn tại sự phát triển công nghệ từ PAL lên GAL và CPLD, có một xu hướng phát triển khác dựa trên công nghệ mảng cổng, đó là mảng cổng có thể lập trình được dạng trường, FPGA (Field-Programmable Gate Array). Từ 1980, các công ty sản xuất PLD hàng đầu đã đẩy mạnh quá trình nghiên cứu về FPGA và nhanh chóng cho ra các thế hệ FPGA với số lượng cổng và tốc độ ngày càng cao.các FPGA hiện nay có số lượng cổng đủ lớn để có thể thay thế cả một hệ thống bao gồm lõi CPU, Bộ điều khiển bộ nhớ (Memory Controller), các ngoại vi như SPI,Timer, I2C, GPIO, PWM, Video/Audio Controller… (nghĩa là tương đương với các SoC hiện đại). Hình 1.1: Sơ đồ khối của FPGA BLOCK RAMS BLOCK RAMS Configura ble Logic Block (CLB) I/O Block Programma ble Interconnect I/O Pin FPGA gồm có (hình 1.1):  CLBs (configurable Logic Blocks): các khối logic có thể cấu hình được, là các thành phần tiêu chuẩn. Trong hầu hết các FPGA, mỗi một CLB chứa một số các mảnh, mà mỗi mảnh lại chứa một số (thường là 2 hoặc 4) ô logic (logic cell) với một số thành phần nhớ (Flip-Flop) hoặc bộ dồn kênh (Mux) nếu không dùng FF. Mỗi ô logic có thể được cấu hình để thực hiện các chức năng logic cơ bản (như AND, OR, NOT) trên các tín hiệu số nhờ sử dụng bảng LUT (look-up Table). Các CLB liên kết với nhau qua mạng liên kết có thể lập trình được (Programmable Interconnect hay routing).  Interconnect hay Routing: mạng liên kết hay định tuyến, là các ma trận chuyển mạch có thể lập trình được - PSM (Programmable Switch Matrix) để hình thành các đơn vị thực hiện các chức năng phức tạp hơn.  IOBs (Input/Output Blocks): các khối vào/ra nằm bao xung quanh của miếng FPGA và nối với các chân tín hiệu vào/ra (I/O pin). Như vậy từng chân I/O của FPGA có thể được lập trình để đảm bảo các giao tiếp điện cần thiết cho kết nối FPGA với hệ thống mà nó là thành phần (hình 1.3).  Block RAM: khối RAM, là các băng nhớ bên trong FPGA. Ngoài ra các thành phần trên, FPGA còn các logic nhỏ khác, như: MAC (Multiply-accumulate circuits): các khối logic nhân tích lũy, để thực hiện các phép nhân và cộng hiệu quả, Các khối thực hiện các chức năng đặc biệt: xử lý tín hiệu số và tương tự, ví dụ các bộ biến đổi tương tự-số ADC (Analog-to-Digital Converter) và các bộ biến đổi số-tương tự DAC (Digital-to-Analog Converter), cho phép FPGA vận hành như là một SoC. Một FPGA chứa từ 64 đến hàng chục ngàn khối logic và các flip-flop. LUT giống như một RAM nhỏ, cũng được gọi là các bộ tạo chức năng, FG (Function generator), được sử dụng để thực hiện các chức năng logic nhờ cất giữ trạng thái logic ra đúng ở trong một vùng nhớ, mà trạng thái logic ra tương ứng với từng tổ hợp của các biến vào. LUT thường có 4 đầu vào có thể thực hiện bất kỳ chức năng logic 4- đầu vào. Các thành phần nhớ trong CLB có thể được cấu hình hoặc thành các các Flip-flop hoặc thành các mạch chốt (Latch). Mỗi CLB thường có bố trí các chân tín hiệu vào và hai Hình 1.2: Vị trí các chân tín hiệu (pin) của CLB chân tín hiệu ra, như chỉ ra ở hình 1.2. Như vậy, có thể kết nối chân tín hiệu đầu từ các phía tương ứng của CLB, trong khi chân tín hiệu đầu ra có thể kết nối với các dây dẫn định tuyến ở cả kênh phía bên phải và kênh phía dưới của CLB. Mỗi một chân tín hiệu đầu ra của CLB có thể kết nối với bất kỳ đoạn nối dây nào trong các kênh kề cận với nó. Tương tự, hộp đệm vào/ra (I/Opad) ở đỉnh của chip FPGA có thể nối với bất kỳ dây dẫn nào ở kênh nằm ngang phía dưới. Các nhà sản xuất có xu hướng thiết kế các khối logic của FPGA thực hiện các chức năng lớn hơn để giảm liên kết cục bộ, đồng nghĩa với số lượng chân tín hiệu đầu vào của khối logic tăng lên, và nó cũng cho phép lập trình các khối logic linh hoạt hơn. Ví dụ, Xilinx có kiến trúc Virtex-5 FPGA dựa trên cặp LUT 6-đầu vào với tổng số 64 bits của không gian lập trình và 6 đầu vào độc lập, và logic liên quan đảm bảo ưu việt trong sử dụng các tài nguyên so với các kiến trúc khác. Nó có thể thực hiện bất kỳ chức năng nào từ 6 đầu vào độc lập và các tổ hợp số của một hoặc hai chức năng nhỏ. LUT 6- đầu vào cũng bao gồm cả các bộ cộng (adder) với logic carry, các bộ dồn kênh (MUX), và flip-flop. Nó có thể được sử dụng bổ xung như là RAM 64-bit hay thanh ghi dịch 32 bit (hình 1.3). Kiến trúc của họ Altera Stratix FPGA đạt được hiệu năng cao nhờ đưa vào module logic thích ứng hiệu quả vùng - ALM (Adaptive logic Module). ALM gồm có logic tổ hợp, 2 thanh ghi, và 2 bộ cộng, như chỉ ra ở hình 1.4. logic tổ hợp có 8 đầu vào một bảng LUT (Lookup Table). Hình 1.4: Altera Stratix IV FPGA ALM kiến trúc của Altera ALM Hình 1.3: Xilinx Virtex-5 FPGA LUT- cặp FF Bảng LUT có thể được chia ra 2 ALUT (Adaptive LUT) với tổng số 64 bits của không gian lập trình và 8 đầu vào chia sẻ. Nó cũng có thể thực hiện bất kỳ chức năng nào của 6 đầu vào và các tổ hợp số của một hoặc hai chức năng nhỏ. ALM 8-đầu vào cho phép các khả năng cấu hình khác nhau như chỉ ra ở hình 1.5. Họ Stratix của các FPGA cũng có hiệu quả trong định tuyến thông qua mạng liên kết MultiTrack TM . Cả LUT-6 đầu vào và ALM đều là những logic cơ bản xây dựng các khối của các kiến trúc FPGA và chúng tương đồng nhau (hình 1.6). Hình 1.6: Sự thực hiện chức năng 5-Input và 3- Input trong Stratix IV ALM và Virtex-5 LUT-cặp FF (a) (b ) (c) (d ) (e) (f) 7- LUT (g ) Hình 1.5: cấu hình linh hoạt của ALM 6- LUT 4- LUT 4- LUT 5- LUT 3- LUT 5- LUT 4- LUT 5- LUT 4- LUT 6- LUT 6- LUT Các FPGA khác nhau có số lượng các ô logic, kích cỡ và số lượng các block RAM, các MAC khác nhau. Các FPGA sử dụng trong các hệ thống lai (hybrid system) thường có khoảng 100K-200K ô logic, 500KB của RAM bên trong và 100 MACs. Hệ thống lai có thể sử dụng FPGA với 1000 khối I/O tương ứng với 1000 I/O pin để đảm bảo các giao tiếp với hệ thống chủ, cũng như với bộ nhớ cục bộ nối trực với FPGA. Các FPGA thường được lập trình sau khi đã hàn gắn trên bảng mạch in, tương tự như các CPLD lớn. Nhưng dữ liệu cấu hình trong FPGA bị mất khi ngừng cấp nguồn (mất điện) giống như RAM trong máy tính vậy. Do đó, muỗi lần ngắt nguồn và bật lại thì ta phải nạp lại tệp cấu hình vào FPGA. Muốn lưu giữ lại cấu hình đã lập trình cho FPGA thì ta phải mắc thêm PROM hay EPROM ngoài. Bộ nhớ ngoài này có nhiệm vụ lưu tệp cấu hình ở dạng nhị phân (bitstream hay bit file) và tự động nạp dữ liệu cấu hình lại cho FPGA mỗi khi bật nguồn, như vậy dù có ngắt nguồn FPGA vẫn “không bị mất” dữ liệu. Các phiên bản EEPROM có thể có thể lập trình được trong hệ thống (hay trong mạch), thường thông qua giao tiếp JTAG. Tệp cấu hình chứa các thiết lập cho từng CLB, PSM, MAC, I/O và các thành phần có thể cấu hình khác của FPGA. Các FPGA được sử dụng trong các hệ thống máy tính lai có thể được lập trình lại vô số lần. Thời gian tải cấu hình mới thường chỉ chưa đến 1 giây. Một số FPGA hiện nay có khả năng trong khi đang hoạt động chuyển đến cấu hình mới đã được nạp trước vào thiết bị. Một số FPGA cũng cho phép cầu hình lại từng phần của thiết bị. FPGA và CPLD có những điểm khác biệt đó là: FPGA bên trong dựa trên các bảng look-up (LUTs), trong khi các CPLD hình thành các chức năng logic bằng các nhiều mạch cổng (ví dụ tổng các tích); FPGA và CPLD đều cấu tạo từ các khối logic (các ô logic) là sự kết hợp của một khối logic và Flip-Flop. Nhưng, FPGA có số lượng lớn các khối logic (đến hang trăm ngàn) hơn nhiều so với CPLD; FPGA giống như RAM, phải nạp lại dữ liệu cấu hình mỗi khi bật nguồn. CPLD giống như EEPROM chỉ cần nạp một lần và không bị mất chức năng sau khi ngắt nguồn; Do FPGA có số lượng rất lớn các khối logic nên có nhiều tài nguyên để thực hiện nhiều chức năng toán học chuyên dụng và phức tạp.Vì vậy các FPGA phù hợp cho các thiết kế phức tạp hơn so với CPLD. Nhìn chung các CPLD là sự lựa chọn tốt cho các ứng dụng tổ hợp, trong khi các FPGA phù hợp hơn cho các máy trạng thái lớn (như các vi xử lý). FPGA có các phần tử logic chạy theo dạng song song. Còn vi điều khiển dựa trên cấu trúc CPU thực thi theo mã lệnh theo dạng tuần tự. FPGA dùng ngôn ngữ lập trình phần cứng (Verilog, VHDL) và lập trình trên FPGA gọi là lập trình phần cứng. Lập trình vi điều khiển là lập trình phần mềm phần cứng có sẵn. 1.2. Định tuyến trong FPGA Liên kết bên trong từng CLB, liên kết giữa các khối logic với nhau và với các khối I/O để FPGA trở thành một thiết bị có chức năng lớn phức tạp là một vấn đề then chốt ảnh hưởng đến hiệu năng của FPGA. Bởi vì các trễ do định tuyến sẽ là đáng kể và lớn hơn so với trễ ở từng khối logic. Ngoài ra, vì các FPGA ngày càng đi vào sâu của các quá trình chế tạo micron nhỏ của mạch tích hợp, nên tỷ lệ của toàn bộ trễ do định tuyến tăng lên với từng thế hệ của quá trình chế tạo. Định tuyến trong FPGA bao gồm các khối chuyển mạch (SB) và các dây nối. Định tuyến đảm bảo kết nối giữa các khối I/O và các khối logic và giữa các khối logic với nhau. Kiểu của kiến trúc định tuyến quyết định vùng được định tuyến và mật độ các khối logic. Khối chuyển mạch nằm ở giao của các kênh định tuyến dọc (vertical routing channel) và ngang (horizontal routing channel). Nói chung, định tuyến của FPGA không có phân đoạn. Nghĩa là, từng đoạn dây nối trải rộng chỉ một khối logic trước khi nó kết thúc ở một khối (hay hộp) chuyển mạch, mà trong một khối chuyển mạch có một số chuyển mạch có thể lập trình được. Đối với liên kết tốc độ cao, một số kiến trúc của FPGA sử dụng các đường dây dài để định tuyến trải đến nhiều khối logic. Ở những chỗ giao của các tuyến dây dọc và ngang đều có khối chuyển mạch. Khi một dây dẫn đi vào khối chuyển mạch, có ba chuyển mạch (trong khối chuyển mạch) cho phép dây dẫn nối với ba dẫn dẫn khác ở các đoạn kênh kề cận. Cấu hình của các chuyển mạch trong khối chuyển mạch là mặt phẳng hai chiều. Trong cấu hình này, các dây dẫn ở rãnh số 2 chỉ nối với các dây dẫn khác trong rãnh số 2, và các dây dẫn ở các rãnh khác cũng có cách nối như vậy. Hình 1.7 minh họa các kết nối ở trong một hộp chuyển mạch. Một đoạn dây dẫn (wire segment) là một liên kết có hai điểm đầu cuối, mà giữa hai điểm này không một chuyển mạch có thể lập trình được nào. Một chuỗi của một hay nhiều đoạn dây dẫn trong một FPGA được xem như là một rãnh (track). Các kênh định tuyến của FPGA gồm các đoạn dây dẫn thuộc một số loại khác nhau, tuỳ thuộc vào nhà sản xuất. 1. Kiến trúc định tuyến của Xilinx FPGA: Các nghiên cứu hàn lâm sử dụng một mô hình kiến trúc chung đơn giản của Xilinx FPGA cho ở hình 1.8. Kiến trúc chung này của Xilinx FPGA gồm có một mảng hai chiều các khối logic có thể lập trình được CLB (configurable Logic Block), với các kênh định tuyến ngang và dọc giữa các hàng và các cột của các CLB. Mỗi CLB có 4 đầu vào và một đầu ra, và tất cả các khối logic là giống nhau. Hình 1.7: Kết nối trong khối chuyển mạch Các tài nguyên của định tuyến trong Xilinx FPGA gồm: Các khối kết nối (Connection Block): các khối kết nối C nối các dây dẫn của kênh định tuyến với các chân tín hiệu của các CLB. Có hai đặc tính ảnh hướng chính đến khả năng định tuyến của thiết kế: tính linh hoạt, Fc, là số dây dẫn mà từng tín hiệu của CLB có thể kết nối; và cấu hình, là mẫu của các chuyển mạch tạo lập kết nối (đặc biệt nếu giá trị Fc thấp). Ví dụ, trong hình 1.9, đối với hộp C với Fc=2, cấu hình 1 (topology 1) không thế nối chân A của một CLB với chân B của CLB khác, trong khí đó thì ở cấu hình 2 (Topology 2) là có thể. Các khối chuyển mạch (Switch Block): các khối chuyển mạch S cho phép các dây dẫn chuyển mạch giữa các dây dọc và ngang . Tính linh hoạt, Fs, xác định số lượng các đoạn dây nối mà một đoạn dây nối đi vào trong khối S có thể kết nối. Cấu hình của các khối chuyển mạch S là rất quan trọng bởi vì có thể chọn hai cấu hình khác nhau có các Hình 1.8: kiến trúc đơn giản của Xilinx FPGA CL B CL B CL B CL B CL B CL B CL B CL B Hình 1.9: Định tuyến qua các hộp kết nối khả năng định tuyến khác nhau với cùng một giá trị tính linh hoạt Fs. Ví dụ, hình 1.12 mô tả cấu hình 1 (topology 1) có thể nối chân tín hiệu A của một CLB với chân tín hiệu B của một CLB khác, trong khi đó cấu hình 2 (Topology 2) thì không thể. . Các khối chuyển mạch mà chỉ kết nối các rãnh trong cùng một miền, chẳng hạn, 0- 0, 1-1, được gọi là các khối chuyển mạch của tập hợp con hay phẳng hai chiều (Subset switch box hay Planar). Các khối chuyển mạch mà cho phép kết nối với bất kỳ miền nào khác, chẳng hạn, 0-3, 1-2, được gọi là các khối chuyển mạch Wilton, và chúng được sử dụng rộng rãi do đảm bảo định tuyến linh hoạt hơn. Hình 1.10: Định tuyến qua các khối chuyển mạch Hình 1.11: Các đường dây trong Xilinx FPGA Các đường dây dài-đơn (Single-length lines): chúng được dùng cho các kết nối tương đói ngắn giữa các CLB và chúng trải rộng chỉ qua một CLB (hình 1.11). Các đường dây dài-gấp đôi (Double-length lines): chúng tương tự như các đường dây dài-đơn, ngoại trừ mỗi đường dây ở đây trải rộng qua hai CLB. Chúng cho các trễ định tuyến nhỏ đối với kết nối dài vừa phải (hình 1.11). Các đường dây dài (Long lines): chúng phù hợp cho các kết nối dài trải rộng một số CLB (hình 1.11). Hình 1.12 minh họa các kết nối định tuyến ở các ma trận chuyển. Khối chuyển mạch C được thực hiện với các transistors dẫn xuất (pass transistor). Các transistors dẫn xuất công nghệ CMOS cho phép thực hiện một chức năng logic với rất ít transistors, do đó nó có ưu điểm là làm cho điện dung thấp. Chuỗi các transistors dẫn xuất được sử dụng để thiết kế các mảng logic lớn như ROM, PLA, và cả các bộ dồn kênh. Vì vậy với khối chuyển mạch C sử dụng các transistors dẫn xuất thì không cần phải dùng đến các bộ dồn kênh cho các đầu vào kết nối. Điều này cho phép hai hoặc nhiều rãnh hơn được hết nối điện qua chân tín hiệu vào nhờ các chuyển mạch trong khối C. Hình 1.13 minh họa về định tuyến trong một Xilinx FPGA. Các liên kết của kênh định tuyến với khối logic (LB) được tạo ra thông qua khối kết nối, CB (Connection Block). Vì công nghệ SRAM được sử dụng để thực hiện các LUT, nên các phía kết nối là rộng. Khối logic được vây quay bởi các khối kết nối ở cả bốn phía kết nối. Các CB nối nối các chân tín hiệu (pin) của LB với các đoạn dây. Các chân tín hiệu của LB, mà chúng nối với các CB có thể sau đó nối với bất kỳ số lượng của các đoạn dây thông qua các khối chuyển mạch, SB (Switch Block). Trong cấu hình này có bốn loại đoạn dây: các đoạn dây Hình 1.29: Ma trận chuyển mạch trong Xilinx FPGA Hình 1.12: Ma trận chuyển mạch trong Xilinx FPGA [...]... phép cộng Kết quả tràn thì bit carry =1, ngược lại bit carry = 0 Là bit borrow khi thực hiện một phép trừ: nếu số bị trừ lớn hơn số trừ thì bit borrow = 0, ngược lại bit borrow =1 Bit carry hay bit borrow là 1 bit chỉ được phân biệt khi thực hiện lệnh cụ thể [b] Zero: bit Z bằng 1 khi kết quả của phép toán bằng 0, ngược lại bit Z=0 [c] Negative (cờ số âm): bit N = 1 khi bit MSB của thanh ghi có giá... dữ liệu 8 bit, nếu kết quả lớn hơn 11111111 thì bit carry 2 sẽ mang giá trị là 1 Ngược lại nếu kết quả của phép cộng nhỏ hơn 11111111 thì bit carry 2 bằng 0 Ví dụ lệnh tăng hay giảm giá trị của một thanh ghi, nếu kết quả trong thanh ghi khác 0 thì bit Z luôn bằng 0, ngược lại nếu kết quả bằng 0 thì bit Z bằng 1 Ví dụ về rẽ nhánh khi kiểm tra bit trong thanh ghi trạng thái: hãy viết một chương trình giảm... một vi xử lý khác nhau sẽ có cấu trúc khác nhau Ví dụ vi xử lý 8 bit sẽ có cấu trúc khác với vi xử lý 16 bit Với mỗi vi xử lý đều có một sơ đồ cấu trúc bên trong và được cho trong các sổ tay của nhà chế tạo Sơ đồ cấu trúc ở dạng khối rất tiện lợi và dễ trình bày nguyên lý hoạt động của vi xử lý Hình 2-1 trình bày sơ đồ khối của vi xử lý 8 bit: Hình 2.1: Sơ đồ cấu trúc bên trong của vi xử lý Trong sơ... số học và logic: arithmetic and logic ♦ Nhóm lệnh xoay và dịch: Rotates and shifts ♦ Nhóm lệnh điều khiển CPU ♦ Nhóm lệnh về bit: Bit set, bit reset, and bit test ♦ Nhóm lệnh nhảy: Jumps ♦ Nhóm lệnh gọi, trở về và nhóm lệnh bắt đầu: Calls, Return, and Restarts ♦ Nhóm lệnh xuất nhập: Input and Output Các mã gợi nhớ và các mã nhị phân của tất cả các lệnh sẽ được cho trong các sổ tay của nhà chế tạo đối... Intermediate carry (cờ tràn phụ): giống như bit Carry nhưng chỉ có tác dụng đối với phép cộng hay trừ 4 bit thấp [e] Interrupt Flag (cờ báo ngắt): Bit IF có giá trị là 1 khi người lập trình muốn cho phép ngắt, ngược lại thì không cho phép ngắt [f] Overflow (cờ tràn số có dấu): bit này bằng 1 khi bit tràn của phép toán cộng với bit dấu của dữ liệu [g] Parity (cờ chẵn lẻ): bit này có giá trị là 1 khi kết quả... Trong đó MVI là mã gợi nhớ, FE là dữ liệu dạng số Hex Vì thanh ghi A chỉ có 8 bit H nên dữ liệu tức thời có độ dài là 8 bit c Kiểu định địa chỉ trực tiếp: Ví dụ lệnh di chuyển nội dung của một ô nhớ có địa chỉ 80 00 vào thanh ghi A: H “LDA 80 00 ” LDA là mã gợi nhớ, địa chỉ 80 00 được viết trực tiếp trong câu lệnh, với H H vi xử lý 8 bit có 16 đường địa chỉ nên phải dùng 4 số Hex để chỉ định một ô nhớ Đối... vào và các cổng ra, và các khối được liên kết với nhau như thế nào FPGA hoặc là tự nạp bộ nhớ cấu hình của nó hoặc bộ xử lý bên ngoài tải nội dung của bộ nhớ cấu hình vào FPGA Khi thực hiện tự nạp, FPGA địa chỉ các byte của bộ nhớ cấu hình giống như bộ xử lý địa chỉ bộ nhớ PROM lưu cấu hình khỏi tạo (boot PROM), hoặc sử dụng PROM tuần tự truy nhập liên tiếp Khi bộ xử lý tải vào FPGA, FPGA thể hiện như... thể hiểu và thực hiện được Nếu tập lệnh của một vi xử lý giống với tập lệnh của một vi xử lý khác thì cấu trúc của 2 vi xử lý giống nhau Độ dài của một lệnh bằng với độ dài từ dữ liệu của vi xử lý, đối với vi xử lý 8 bit thì độ dài của một lệnh là 8 bit, đối với vi xử lý 16 bit thì độ dài của một lệnh là 16 bit, Trong chu kỳ đón lệnh, mã lệnh sẽ được gởi đến thanh ghi lệnh, bộ giải mã lệnh, và bộ điều... bộ xử lý 32 -bit kiến trúc RISC được tối ưu để thực ghiện trong các Xilinx FPGA với các bus lệnh và dữ liệu 32 -bit riêng biệt chạy ở tốc độ đầy đủ để thực hiện các chương trình và truy nhập dữ liệu từ bộ nhớ bên trong chip và từ bộ nhớ bên ngoài chip đồng thời Xương sống của kiến trúc MicroBlaze là đường ống 3-giai đoạn một đường ra với tệp các thanh ghi chung 32 -bit, ALU, đơn vị dịch, và hai mức ngắt... dữ liệu vào ngăn xếp Giống như thanh ghi PC, thanh ghi SP cũng tự động chỉ đến ô nhớ kế Trong hầu hết các vi xử lý, thanh ghi SP giảm (để chỉ đến ô nhớ tiếp theo trong ngăn xếp) sau khi thực hiện lệnh cất dữ liệu vào ngăn xếp Do đó khi thiết lập giá trị cho thanh ghi SP là địa chỉ cuối cùng của bộ nhớ Thanh ghi SP phải chỉ đến một ô nhớ do người lập trình thiết lập, quá trình này gọi là khởi tạo con . em đã Nghiên cứu và chế tạo CPU 8 bit bằng lập trình FPGA Chúng em xin chân thành cảm ơn thầy Hồ Khánh Lâm và thầy Phạm Ngọc Hưng cùng các thầy giáo trong bộ môn KTMT đã tạo điều kiện. mã lệnh theo dạng tuần tự. FPGA dùng ngôn ngữ lập trình phần cứng (Verilog, VHDL) và lập trình trên FPGA gọi là lập trình phần cứng. Lập trình vi điều khiển là lập trình phần mềm phần cứng có. thể tiếp xúc như lĩnh vực nghiên cứu, chế tạo chíp…. Nghiên cứu và chế tạo chíp là việc làm hết sức cần thiết trong giai đoạn công nghiệp hóa hiện nay. Để chế tạo ra những loại chíp có tác

Ngày đăng: 10/11/2014, 17:43

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan