1. Trang chủ
  2. » Luận Văn - Báo Cáo

Thiết kế system on chip (SoC) và thực hiện bằng FPGA

80 42 0

Đ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

Thông tin cơ bản

Tiêu đề Thiết kế system on chip (soc) và thực hiện bằng fpga
Tác giả Trần Văn Tiến
Người hướng dẫn TS. Nguyễn Kim Khánh
Trường học Đại học Bách Khoa Hà Nội
Chuyên ngành Kỹ thuật máy tính và truyền thông
Thể loại Luận văn thạc sĩ
Năm xuất bản 2013
Thành phố Hà Nội
Định dạng
Số trang 80
Dung lượng 1,76 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Cấu trúc

  • MỤC LỤC

  • MỞ ĐẦU

  • CHƯƠNG 1

  • CHƯƠNG 2

  • CHƯƠNG 3

  • CHƯƠNG 4

  • KẾT LUẬN

  • TÀI LIỆU THAM KHẢO

Nội dung

Thiết kế system on chip (SoC) và thực hiện bằng FPGA Thiết kế system on chip (SoC) và thực hiện bằng FPGA Thiết kế system on chip (SoC) và thực hiện bằng FPGA luận văn tốt nghiệp,luận văn thạc sĩ, luận văn cao học, luận văn đại học, luận án tiến sĩ, đồ án tốt nghiệp luận văn tốt nghiệp,luận văn thạc sĩ, luận văn cao học, luận văn đại học, luận án tiến sĩ, đồ án tốt nghiệp

Lý do ch ọn đề tài

Hệ thống trên chip SoC (System on Chip) đang trở thành xu hướng phát triển chính trong ngành điện tử hiện đại, với mục tiêu tích hợp tất cả các module chức năng vào một chip sử dụng công nghệ FPGA Nhiều công ty hiện nay cung cấp các module thiết kế riêng biệt, cho phép các nhà thiết kế lựa chọn và tích hợp chúng vào hệ thống mà không cần xây dựng từ đầu Xuất phát từ những xu hướng này, tôi đã chọn nghiên cứu đề tài thiết kế SoC và thực hiện bằng FPGA, nhằm tìm hiểu cách xây dựng các IP core, công nghệ FPGA và phát triển hệ thống SoC Tài liệu này sẽ là nguồn tham khảo hữu ích cho các bạn học viên trong việc nghiên cứu và phát triển hệ thống System on Chip.

L ị ch s ử nghiên c ứ u

Luận văn được thực hiện dưới sự hướng dẫn của thầy giáo Ts Nguyễn Kim

Khánh, sinh viên Viện Công nghệ thông và Truyền thông thuộc Đại học Bách Khoa Hà Nội, đã tiến hành nghiên cứu luận văn dưới sự hướng dẫn của giáo viên Quá trình thực hiện được theo dõi và điều chỉnh định kỳ 2 tuần một lần Nghiên cứu bắt đầu vào tháng 10 năm 2012 và hoàn thành vào tháng 3 năm 2013.

M ụ c đích, đối tượ ng và ph ạ m vi nghiên c ứ u

Quy trình xây dựng và thiết kế SoC bao gồm việc tìm hiểu công nghệ FPGA và các IP core trong hệ thống SoC Người dùng cần thiết kế các IP core thiết yếu như bộ xử lý, bộ nhớ và các mô-đun kết nối vào ra Cuối cùng, thực hiện hệ thống SoC FPGA dựa trên vi xử lý 32-bit Nios II.

Tóm t ắ t các lu ận điểm cơ bản và đóng góp của đồ án

Mục tiêu chính của luận văn là nghiên cứu hệ thống System on Chip (SoC) và quy trình thiết kế của nó, đồng thời tìm hiểu về công nghệ FPGA Luận văn cũng tập trung vào việc xây dựng các khối IP Core cho hệ thống SoC.

11 thống System on Chip từ đó có cái nhìn tổng quan để xây dựng hoàn thiện hệ thống SoC

Bố cục của luận văn tốt nghiệp

Chương 1: Tổng quan về System on Chip

Trình bày tổng quan về System on Chip, các quy trình thiết kế và hướng đi của luận văn trong xây dựng thiết kế hệ thống SoC

Trình bày công nghệ FPGA, kiến trúc FPGA và ngôn ngữ sử dụng cho FPGA Chương 3 : Thiết kế System on Chip và thực hiện bằng FPGA

Thiết kế bộ vi xử lý, bộ nhớ

Thiết kế các module nối ghép vào ra

Thực hiện trên FPGA Đánh giá các kết quảđạt được.

Phương pháp nghiên cứ u

Luận văn được xây dựng dựa trên lý thuyết từ tài liệu về SoC và bộ vi xử lý của các tác giả trong và ngoài nước, cùng với các nguồn tài nguyên từ website và bài báo liên quan Kết quả nghiên cứu được thực hiện thông qua phần mềm Altera, bao gồm Quatus, Modelsim và NiosII.

TỔ NG QUAN V Ề SYSTEM ON CHIP (SoC)

Cơ sở lý thuy ế t

[2] Trong 40 năm qua đã có sự tiến bộ kinh ngạc trong kĩ thuật silicon và kết quả là sựtăng nhạnh mật độ và hiệu năng của transitor

Hình 1.1 Sự gia tăng mật độ transitor

Biểu đồ cho thấy sự tiến bộ không ngừng trong việc cải tiến mật độ transistor và đồng thời với đó là sự giảm về giá thành thiết bị

Hình 1.2 Giảm giá thành sản phẩm

Những công nghệ sản xuất hiện đại hiện nay cho phép chế tạo các chip với khả năng chứa lên tới 100 triệu transistor, với kích thước của các transistor được đo bằng nanometer.

Mỗi 18 tháng, số lượng transistor trên mỗi chip tăng gấp đôi theo quy luật Moore, dẫn đến việc nhiều thành phần được tích hợp trên cùng một bảng mạch in Điều này đã thúc đẩy sự phát triển mạnh mẽ trong lĩnh vực thiết kế hệ thống trên chip (SOC).

Mô hình cơ bản của hệ thống SoC bao gồm nhiều yếu tố quan trọng, như các bộ xử lý đa dạng kết nối với một hoặc nhiều thành phần bộ nhớ và các cấu hình logic Ngoài ra, SoC thường tích hợp mạch tương tự để quản lý dữ liệu cảm biến, chuyển đổi tín hiệu từ tương tự sang kỹ thuật số, hoặc hỗ trợ truyền dữ liệu không dây.

Một SoC cho điện thoại thông minh cần hỗ trợ âm thanh, đầu ra cho điện thoại truyền thống, truy cập internet, phương tiện truyền thông video, xử lý tài liệu, và giải trí đa phương tiện như trò chơi và phim.

A System on Chip (SoC) is an integrated system that combines a chip, software, and integration The SoC chip consists of an embedded processor, ASIC logics, and analog circuits The software component includes the operating system, compiler, simulator, firmware, drivers, and protocol stack, along with an integrated development environment featuring debugging tools, linkers, and in-circuit emulators Additionally, the integration aspect encompasses comprehensive system solutions, supporting techniques, and specifications provided by manufacturers.

Quá trình phát triển SoC diễn ra nhanh hơn so với ASIC, nhờ vào việc sử dụng một Bus kết nối chuẩn (SoC interconnection) trong hệ thống Tất cả các thành phần cần giao tiếp với nhau đều phải kết nối với hệ thống Bus này thông qua các Interface Một số hệ thống Bus phổ biến hiện nay bao gồm

 AMBA (Advanced Microcontroller Bus Architecture)

The Advanced High Performance Bus (AHB) features components, also known as cores, that are characterized by their reusability, developed by manufacturers and IP vendors.

 Soft Core : linh động, tính tái sử dụng, dễ tích hợp

 Firm Core : mang đặc tính của cả hai SoftCore và HardCore

 Hard Core : Hiệu suất ,tốc độ hoạt động cao

Các ưu điểm của công nghệ này bao gồm tiêu thụ ít năng lượng, tốc độ hoạt động được cải thiện, kích thước mạch nhỏ gọn, giá thành rẻ cho mỗi transistor được tích hợp và độ tin cậy cao.

- Nhược điểm : o Mở rộng độ phức tạp của hệ thống o Mở rộng yêu cầu kiểm tra (verification) cho toàn bộ hệ thống

- Ứng dụng của SoC trong các lĩnh vực : o Xử lý tín hiệu tiếng nói o Xử lý tín hiệu âm thanh và hình ảnh o Công nghệ thông tin:

 PC interface (USB, PCI,PCI-Express, IDE, etc) Computer peripheries (printer control, LCD monitor controller, DVD controller,.etc) o Trao đổi dữ liệu :

 Wireline Communication: 10/100 Based-T, xDSL, Gigabit Ethernet, Etc

 Wireless communication: BlueTooth, WLAN, 2G/3G/4G, WiMax, UWB, …,etc

Bảng 1.1 Các công cụ phát triển

Công cụ sử dụng Chức năng của công cụ

Phần cứng Quartus II Tạo thiết kế FPGA

SOPC Builder Xây dựng hệ thống SoC

Phần mềm NIOS II SBT Phát triển phần mềm ứng dụngNIOS II IDE

Quy trình thi ế t k ế System on Chip

Place and Route post-layout STA

Hình 1.4 Quy trình thiết kế SoC

1.2.1 Giai đoạn thiết kế Front end

Giai đoạn thiết kế Front End tập trung vào việc phát triển thiết kế logic thông qua việc viết mã, mô phỏng kiểm tra, thiết lập các ràng buộc và phân tích thời gian.

Chip được phát triển dựa trên các ứng dụng thực tiễn, với các nhà thiết kế bắt đầu từ mục đích sử dụng và ý tưởng để xây dựng bảng mô tả chi tiết về thông số kỹ thuật và tính năng cần đạt được Bảng thông số kỹ thuật cung cấp thông tin về các đặc điểm thiết kế, bao gồm tần số hoạt động, điều kiện điện áp, nhiệt độ và các mối quan hệ định thời trong thiết kế.

Dựa trên bảng mô tả chi tiết thông số kỹ thuật, người thiết kế sẽ tạo ra sơ đồ khối cho thiết kế, trong đó bao gồm nhiều khối Logic được kết nối với nhau, mỗi khối Logic thực hiện một chức năng cụ thể trong tổng thể thiết kế.

Sau khi hoàn thiện sơ đồ khối thiết kế với các khối Logic liên kết, người thiết kế sẽ bắt đầu viết mã RTL cho từng khối Giai đoạn viết mã RTL không chỉ đảm bảo chức năng Logic chính xác mà còn phải đáp ứng các yêu cầu phần cứng trong thiết kế như Flip Flop, Latch, và Mux.

Sau khi hoàn thành giai đoạn viết mã RTL, thiết kế sẽ được mô phỏng động bằng cách đưa tín hiệu vào và nhận tín hiệu ra sau khi thực hiện mô phỏng Điều này đảm bảo rằng chức năng của thiết kế được kiểm tra một cách toàn diện.

Để xác định chức năng của thiết kế, người thiết kế cần so sánh tín hiệu ngõ ra thực tế với tín hiệu ngõ ra mong muốn dựa trên một tín hiệu ngõ vào đã xác định Nếu tín hiệu ngõ ra không đạt yêu cầu, mã RTL cần được kiểm tra lại Việc kiểm tra này chỉ tập trung vào chức năng mà không xem xét đến các thông số về thời gian hay định thời của thiết kế.

Testbench là chương trình được sử dụng để gửi tín hiệu đầu vào và nhận tín hiệu đầu ra mong muốn Nó cũng được viết bằng ngôn ngữ mô tả phần cứng, giúp giao tiếp hiệu quả với thiết kế cần được mô phỏng.

Sau khi đã đảm bảo về chức năng của thiết kế, thiết kế sẽđược chuyển qua giai đoạn Synthesis và Scan Insertion

Synthesis là quá trình dùng phần mềm để biên dịch mã RTL sang Gate-level

Netlist được thực hiện bằng cách kết hợp các ràng buộc về điều kiện môi trường và thời gian, nhằm tương tác với phần mềm để lựa chọn các Cell trong thư viện phù hợp với các yêu cầu thiết kế Trong quá trình này, phần mềm sẽ tối ưu hóa để đáp ứng các điều kiện ràng buộc Synopsys thường sử dụng phần mềm Design Compiler (DC) cho quy trình này.

Ngày nay, thiết kế sản phẩm bao gồm cả yếu tố kiểm tra lỗi Silicon trong quy trình sản xuất, được biết đến với tên gọi Design For Test (DFT) Kỹ thuật này đóng vai trò quan trọng trong việc đảm bảo chất lượng và hiệu suất của các sản phẩm công nghệ.

20 phương pháp của kỹ thuật DFT là Scan Insertion, phương pháp này sẽ tạo nên trong thiết kế những cấu trúc dùng riêng cho việc kiểm tra lỗi Silicon

Hình 1.7 Synthesis and Scan Insertion

Sau khi được Synthesis, thiết kế cần đảm bảo chức năng chính xác, đáp ứng các thông số vật lý và hoạt động với tốc độ yêu cầu nhất định.

STA là giai đoạn phân tích thời gian trong thiết kế sau khi Synthesis, sử dụng phần mềm PrimeTime để phân tích độ trì hoãn của các đường truyền tín hiệu Kết quả phân tích sẽ được trình bày dưới dạng báo cáo, giúp người thiết kế đánh giá xem tốc độ hoạt động của thiết kế có đạt yêu cầu hay không Thực tế, quá trình STA thường được lặp lại nhiều lần cùng với Synthesis cho đến khi các yêu cầu về thời gian của thiết kế được đáp ứng.

STA bao gồm hai giai đoạn chính: pre-layout STA và post-layout STA Giai đoạn pre-layout STA kiểm tra xem thiết kế có đáp ứng các yêu cầu về thời gian sau khi thực hiện Synthesis hay không Trong khi đó, giai đoạn post-layout STA xác nhận rằng thiết kế vẫn đảm bảo các yêu cầu về thời gian sau khi Back End đã thiết lập các giá trị thực tế về điện trở (R), điện dung (C) của các Cell và các dây nối.

Formal Verification là quá trình đảm bảo tính chính xác chức năng của thiết kế mà không xem xét các yếu tố định thời và vật lý Khác với Dynamic Verification, Formal Verification sử dụng các phương pháp toán học để so sánh, thay vì đưa tín hiệu cụ thể vào để kiểm tra.

Gate-level Netlist của thiết kế sau khi Synthesis vẫn đảm bảo đúng chức năng so với mã RTL ban đầu

If the results after the Formal Verification phase confirm that the functionality aligns with the original RTL code, the process moves on to the Back End design stage Otherwise, it is necessary to revisit and verify the Synthesis process.

1.2.2 Giai đoạn thiết kế Back end

Floorplanning là quá trình sắp xếp các khối trong vùng die hay bên trong các khối khác và giữa chúng phải có định nghĩa các vùng dùng đểđi dây.

Quá trình Floorplanning có ảnh hưởng rất lớn đến hiệu suất và định thời của mạch, nhất là đối với những thiết kế phức tạp

Chất lượng Floorplanning ảnh hưởng đáng kể đến chất lượng thiết kế của chúng ta

Place and Route là quá trình đặt các Cell và kết nối dây dựa trên kết nối về mặt

Logic giữa các Cell trong Gate-level Netlist rất quan trọng Sau khi hoàn tất việc bố trí các Cell và kết nối dây, cần tiến hành giai đoạn post-layout STA và post-layout simulation để đảm bảo tính chính xác và hiệu suất của mạch.

TỔ NG QUAN V Ề CÔNG NGH Ệ FPGA

Gi ớ i thi ệ u v ề FPGA

FPGA, viết tắt của "Field Programmable Gate Array", là vi mạch có cấu trúc mảng phần tử logic cho phép người dùng lập trình và thực hiện các tính năng logic một cách linh hoạt và tiết kiệm chi phí Xilinx là công ty tiên phong trong lĩnh vực này, chiếm lĩnh thị trường cùng với các nhà sản xuất khác như Alterna, Lattice, Actel và QuickLogic Việc lựa chọn cấu trúc và phương pháp xử lý phù hợp là rất quan trọng để đáp ứng yêu cầu về chức năng và độ ổn định trong các hệ thống thực tế Kể từ khi ra đời vào cuối thập kỷ 1970, FPGA đã trở nên phổ biến trong ngành công nghiệp bán dẫn nhờ vào khả năng lập trình đa dạng và thời gian sản xuất ngắn, mang lại lợi thế cạnh tranh lớn Thiết kế với FPGA cũng khá đơn giản và cho phép lập trình lại nhiều lần.

FPGA, được thiết kế đầu tiên bởi Ross Freeman, người sáng lập công ty Xilinx vào năm 1984, đã mang đến một kiến trúc mới cho phép tích hợp một số lượng lớn các phần tử bán dẫn vào một vi mạch Kiến trúc này vượt trội hơn so với CPLD (Complex Programmable Logic Device) trước đó.

CPLD và FPGA đều là các thiết bị logic có thể lập trình, nhưng chúng khác nhau về mật độ tích hợp CPLD có mật độ cổng logic từ vài nghìn đến hàng chục nghìn, trong khi FPGA có mật độ tích hợp cao hơn, từ hàng chục nghìn đến vài triệu cổng logic.

FPGA và CPLD có nhiều điểm khác biệt, nhưng kiến trúc là yếu tố chính phân biệt chúng CPLD có kiến trúc hạn chế, bao gồm một hoặc nhiều dải logic "sum-of-products" khả trình và một số lượng nhỏ các thanh ghi đồng bộ Điều này khiến CPLD ít linh hoạt hơn, nhưng bù lại, thời gian trễ dễ dự đoán và tốc độ kết nối logic ổn định hơn.

FPGA vượt trội hơn CPLD nhờ vào kiến trúc linh hoạt với các liên kết nối, giúp tăng độ phức tạp trong thiết kế Hầu hết các chip FPGA tích hợp các hàm cấp cao như bộ cộng và bộ nhân cùng với bộ nhớ đã được nhúng Đặc biệt, các FPGA đời mới hỗ trợ cấu hình lại trong hệ thống, cho phép thay đổi thiết kế và cập nhật hệ thống hoặc thực hiện cấu hình động trong khi vẫn hoạt động bình thường.

Một số FPGA có khả năng cấu hình lại cục bộ, cho phép một phần của thiết bị được cấu hình trong khi các phần khác vẫn hoạt động bình thường.

Ki ế n trúc chung c ủ a m ộ t FPGA

Cấu trúc tổng thể của FPGA bao gồm:

- Hệ thống liên kết mạch

- Các phần tử tích hợp sẵn

Hình 2.1 Cấu trúc tổng thể của một FPGA

FPGA (Field-Programmable Gate Array) là một loại mạch tích hợp chứa nhiều khối logic có thể tái cấu hình, gọi là CLB (Configurable Logic Blocks) Những khối này được kết nối với nhau thông qua các liên kết khả trình (Programmable Interconnect) Bên cạnh đó, các khối vào ra được bố trí xung quanh chip, tạo thành các kết nối linh hoạt để thực hiện các chức năng khác nhau.

Bên trong khối logic của CLB, có bảng LUT (Look-Up Table) và các phần tử nhớ như Flip-Flop LUT là một khối logic có khả năng thực hiện bất kỳ hàm logic nào với 4 đầu vào, và kết quả của hàm này có thể được gửi ra ngoài khối logic trực tiếp hoặc thông qua phần tử nhớ Flip-Flop, tùy thuộc vào mục đích sử dụng.

Trong tài liệu hướng dẫn của Xilinx về FPGA, khái niệm SLICE được nhắc đến, với mỗi SLICE bao gồm 4 khối logic Số lượng SLICE có thể thay đổi từ vài nghìn đến vài chục nghìn tùy thuộc vào loại FPGA Cấu trúc tổng thể của mảng LUT không chỉ hỗ trợ 4 đầu vào mà còn bổ sung thêm 2 đầu vào từ các khối logic xung quanh, nâng tổng số đầu vào của LUT lên 6 chân, nhằm tăng tốc độ xử lý của các bộ số học logic.

1.2.2 Hệ thống mạch liên kết

Mạng liên kết trong FPGA bao gồm các đường kết nối theo hai phương ngang và đứng, được phân chia thành các nhóm khác nhau tùy thuộc vào loại FPGA Chẳng hạn, trong dòng sản phẩm XC4000 của Xilinx, có ba loại kết nối: ngắn, dài và rất dài Các đường kết nối này được kết nối với nhau thông qua các khối chuyển mạch lập trình được, trong đó mỗi khối chứa một số lượng nút chuyển lập trình, đảm bảo khả năng thực hiện các dạng liên kết phức tạp khác nhau.

1.2.3 Các phần tử tích hợp sẵn

Các khối logic trong FPGA khác nhau tùy thuộc vào loại FPGA, với các phần tử tích hợp bổ sung như nhân xử lý PowerPC trong dòng Virtex 4,5 của Xilinx hay nhân ARV trong Atmel FPSLIC Đối với các ứng dụng xử lý tín hiệu số DSP, FPGA được trang bị các DSP slices, là bộ nhân cộng tốc độ cao thực hiện hàm A*B+C Dòng Virtex của Xilinx chứa từ vài chục đến hàng trăm DSP slices với A, B, C có độ dài 18-bit.

Ngôn ng ữ ph ầ n c ứ ng HDL

Ngôn ngữ mô tả phần cứng (HDL) là công cụ lập trình dùng để mô phỏng hoạt động của phần cứng, với hai khía cạnh chính là mô hình hành vi trừu tượng và mô hình cấu trúc phần cứng Mô hình hành vi trừu tượng cho phép dễ dàng mô tả cách thức hoạt động của phần cứng, phục vụ cho việc đặc tả kỹ thuật chi tiết mà không bị ràng buộc bởi cấu trúc hay thiết kế cụ thể của phần cứng.

Mô hình cấu trúc phần cứng cho phép mô tả các thành phần của hệ thống mà không cần chú ý đến hành vi thiết kế, giúp tối ưu hóa quá trình phát triển và phân tích hệ thống.

Vào năm 1980, Bộ Quốc phòng Mỹ (DOD) đã khởi xướng việc thiết kế mạch tự dẫn chứng, nhằm phát triển một hệ phương pháp thiết kế tổng quát có khả năng tái sử dụng với các công nghệ mới Nhu cầu về một ngôn ngữ lập trình chuẩn để mô tả chức năng và cấu trúc của các mạch số trong thiết kế vi mạch (IC) đã trở nên rõ ràng Để đáp ứng yêu cầu này, DOD đã tài trợ cho dự án thuộc chương trình vi mạch tốc độ rất cao VHSIC (very high speed integrated circuit), từ đó đã dẫn đến việc phát triển ngôn ngữ mô tả phần cứng VHSIC, hay còn gọi là VHDL (VHSIC Hardware Description Language).

VHDL là sự kết hợp của ngôn ngữ tuần tự, ngôn ngữ đồng thời, netlist, định thời và mô phỏng, cho phép thể hiện cách thực hiện song song hoặc tuần tự của hệ thống số với hoặc không có timing Ngoài ra, VHDL cũng hỗ trợ việc mô hình hóa hệ thống thông qua các liên kết giữa các thành phần.

VHDL được sử dụng cho cả tổng hợp và mô phỏng mạch Mặc dù VHDL có khả năng mô phỏng một cách toàn diện, nhưng không phải tất cả các cấu trúc đều có thể được tổng hợp bằng VHDL.

1.3.1 Các ưu điểm của VHDL

- Chương trình trong VHDL có th ể được viết theo nhiều cấu trúc khác nhau: Ngẫu nhiên, tuần tự, nối chân, định thời chỉ rõ, ngôn ngữ sinh dạng sóng

VHDL là một ngôn ngữ phân cấp cho hệ thống số, cho phép mô phỏng các kết nối giữa các khối Những khối này có thể được thực hiện bởi các khối con nhỏ hơn, tạo thành một cấu trúc linh hoạt và dễ quản lý.

- Cung cấp một cách mềm dẻo các phương thức thiết kế trên xuống, dưới lên, hoặc tổ hợp cả hai

- Cung cấp cảhai mode đồng bộvà không đồng bộ

- Linh hoạt trong kĩ thuật mô phỏng sốnh ư sử dụng biểu đồ trạng thái, thuật toán, các hàm Boolean

VHDL, được phát triển dưới sự bảo trợ của chính phủ Mỹ, hiện đã trở thành tiêu chuẩn của IEEE và nhận được sự hỗ trợ từ nhiều nhà sản xuất thiết bị cũng như các nhà cung cấp công cụ thiết kế mô phỏng hệ thống.

- VHDL cung cấp 3 kiểu mẫu viết khác nhau: structural, dataflow và behavioral

- Không giới hạn vềđộ lớn của thiết kế khi sử dụng ngôn ngữ

VHDL hoàn toàn độc lập với công nghệ chế tạo phần cứng, cho phép mô tả hệ thống thiết kế ở mức cổng Điều này có nghĩa là các thiết kế VHDL có thể dễ dàng chuyển đổi thành các bản tổng hợp mạch khác nhau, phù hợp với công nghệ chế tạo phần cứng mới, và có thể áp dụng ngay cho các hệ thống đã được thiết kế trước đó.

- Khảnăng định nghĩa kiểu dữ liệu mới cung cấp một công cụ hữu hiệu cho thiết kế và mô phỏng công nghệ mới với một mức rất cao

1.3.2 Cấu trúc một mô hình hệ thống sử dụng ngôn ngữ VHDL

VHDL là ngôn ngữ mô tả phần cứng, cho phép mô hình hóa hệ thống số từ các cổng logic đơn giản đến hệ thống phức tạp hoàn chỉnh Các khối xây dựng trong VHDL được gọi là khối thiết kế, bao gồm ba loại khối thiết kế chính.

- Khai báo Entity (Thực thể)

- Khai báo Architecture (Kiến trúc)

- Khai báo Configuration (Cấu hình)

- Đôi khi ta sử dụng các gói (Packages) và mô hình kiểm tra hoạt động của hệ thống (Testbench)

Khai báo thực thể trong VHDL định nghĩa các chỉ tiêu bên ngoài của một phần tử hoặc hệ thống, bao gồm tên của Entity và danh sách các cổng vào/ra Các cổng này là tín hiệu cho phép entity giao tiếp với môi trường bên ngoài Ví dụ, hình 8 minh họa một mạch bán tổng.

Hình 2.3 Bộ bán tổng Khai báo Entity như sau: entity HALF-ADDER is port ( A, B : in BIT;

Bộ bán cộng này có hai đầu vào A và B, cùng với hai đầu ra là SUM và CARRY BIT là một kiểu cấu trúc ngôn ngữ được định nghĩa trước trong FPGA.

Phần thứ 2 trong mã nguồn VHDL là khai báo Architecture Mỗi một khai báo

Mỗi Entity phải có ít nhất một Architecture tương ứng, và khi khai báo Architecture trong chương trình, cần kết hợp tên Architecture với một Entity Thân Architecture có thể bao gồm các khai báo về tín hiệu nội bộ, các phần tử trong hệ thống, cũng như các hàm và thủ tục mô tả hoạt động của hệ thống Tên Architecture được đặt theo ý muốn của người viết chương trình, và cấu trúc bên trong có thể được viết theo nhiều kiểu mẫu khác nhau.

- Tập hợp kết nối bên trong của các thiết bị

- Tập các câu lệnh ngẫu nhiên

- Tập các câu lệnh tuần tự

- Kết hợp của ba dạng trên

Các kiểu mô hình này sẽđược mô tả cụ thểnhư sau:

Kiểu này được xây dựng dựa trên một tập hợp các thành phần kết nối, chẳng hạn như bộ bán tổng (half-adder) Kiến trúc HA-STRUCTURE của bán tổng bao gồm thành phần XOR2 với các cổng đầu vào X và Y là kiểu BIT.

Trong kiểu luồng dữ liệu này, các phép gán đồng thời được sử dụng để biểu diễn luồng dữ liệu qua Entity Ví dụ dưới đây minh họa kiểu luồng dữ liệu của bộ bán cộng.

Architecture DATAFLOW of HALF-ADDER is

Trong kiểu luồng dữ liệu, phép gán tín hiệu có thể được thực hiện đồng thời hoặc nối tiếp, với ký hiệu gán “ New > Nios II C/C++ Application và nhập tên cho chương trình trong ô Name Nếu bạn muốn tạo một thư viện mới, hãy sử dụng thư viện có sẵn hỗ trợ là hello_world_small_0.

Tại khung SOPC builder System chọn đường dẫn tới file có đuôi *.ptf mà Quartus đã sinh ra trong quá trình tổng hợp

Để lập trình điều khiển cho hệ thống, chúng ta có thể viết code C vào file “hello_world_small.c” hoặc tạo một file mới, sử dụng các lệnh trong C cùng với các lệnh hỗ trợ riêng cho Nios Trong bài này, chúng ta sẽ thực hiện chức năng đơn giản nhất trong C là xuất một đoạn text ra màn hình, sử dụng chương trình có sẵn trong “hello_world_small.c”.

Sau khi hoàn tất việc nạp chương trình Quartus, chúng ta đã thiết lập một hệ thống hoàn chỉnh với vi xử lý 32bit Nios II làm trung tâm Tiếp theo, hãy chuyển sang giao diện Nios II IDE để nạp chương trình cho Nios.

Hình 3.30 Nạp chương trình cho Nios II

Hình 3.31 Example Hello world small

KẾ T QU Ả VÀ ĐÁNH GIÁ

Ngày đăng: 27/04/2021, 14:12

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[8]. Website : www.xilinx.com [9]. Website : http://www.altera.com Link
[1]. Rapid Prototyping of Digital Systems SOPC Edition : SOPC Edition (James-O.- Hamblen) Khác
[2]. Computer System Design: System-on-Chip [Hardcover] (Michael J. Flynn (Author), Wayne Luk (Author)) Khác
[3]. A Platform-Centric Approach to System-on-Chip (SOC) Design [Hardcover] ( Vijay Madisetti (Author), Chonlameth Arpnikanondt (Author)) Khác
[4]. Advanced FPGA Design: Architecture, Implementation, and Optimization [Hardcover] (Steve kilts) Khác
[5]. Digital Design and Computer Architecture, 2nd Edition (Author(s) : Harris & Harris ) Khác
[6]. Modern VLSI Design System-on-Chip Design, Third Edition (Wayne Wolf (Author)) Khác
[7]. Processor Design: System-On-Chip Computing for ASICs and FPGAs [Hardcover] (Jari Nurmi (Editor)) Khác

HÌNH ẢNH LIÊN QUAN

Hình 1.1.  Sự gia tăng mật độ transitor - Thiết kế system on chip (SoC) và thực hiện bằng FPGA
Hình 1.1. Sự gia tăng mật độ transitor (Trang 14)
Hình 1.2.  Giảm giá thành sản phẩm - Thiết kế system on chip (SoC) và thực hiện bằng FPGA
Hình 1.2. Giảm giá thành sản phẩm (Trang 15)
Hình 1.3.  Mô hình cơ bản SoC Hình 1.3 minh h ọ a m ộ t s ố  nh ữ ng y ế u t ố cơ bả n c ủ a m ộ t h ệ  th ố ng SoC - Thiết kế system on chip (SoC) và thực hiện bằng FPGA
Hình 1.3. Mô hình cơ bản SoC Hình 1.3 minh h ọ a m ộ t s ố nh ữ ng y ế u t ố cơ bả n c ủ a m ộ t h ệ th ố ng SoC (Trang 16)
Hình 1.4.  Quy trình thiết kế SoC - Thiết kế system on chip (SoC) và thực hiện bằng FPGA
Hình 1.4. Quy trình thiết kế SoC (Trang 19)
Hình 2.2.  Khối Logic - Thiết kế system on chip (SoC) và thực hiện bằng FPGA
Hình 2.2. Khối Logic (Trang 26)
Hình 2.5.  Sơ  đồ  tổng  quát  của  một  chương  trình  thử (Testbench) - Thiết kế system on chip (SoC) và thực hiện bằng FPGA
Hình 2.5. Sơ đồ tổng quát của một chương trình thử (Testbench) (Trang 35)
3 .1.2. Sơ đồ  kh ố i thi ế t k ế . - Thiết kế system on chip (SoC) và thực hiện bằng FPGA
3 1.2. Sơ đồ kh ố i thi ế t k ế (Trang 37)
Hình 3.2.  Khối Datapath - Thiết kế system on chip (SoC) và thực hiện bằng FPGA
Hình 3.2. Khối Datapath (Trang 38)
Hình 3.3.  Khối  instruction_fetch - Thiết kế system on chip (SoC) và thực hiện bằng FPGA
Hình 3.3. Khối instruction_fetch (Trang 40)
Hình 3.5.  Sơ đồ thiết kế hoàn chỉnh bộ vi xử lý - Thiết kế system on chip (SoC) và thực hiện bằng FPGA
Hình 3.5. Sơ đồ thiết kế hoàn chỉnh bộ vi xử lý (Trang 43)
Hình 3.6.  Cấu trúc file trên quatus - Thiết kế system on chip (SoC) và thực hiện bằng FPGA
Hình 3.6. Cấu trúc file trên quatus (Trang 43)
Hình 3.7.  Kết quả mô phỏng - Thiết kế system on chip (SoC) và thực hiện bằng FPGA
Hình 3.7. Kết quả mô phỏng (Trang 45)
Hình 3.8.  Sơ đồ khối Uart - Thiết kế system on chip (SoC) và thực hiện bằng FPGA
Hình 3.8. Sơ đồ khối Uart (Trang 48)
Hình 3.9.  Sơ đồ tín hiệu kết nối giữa các module - Thiết kế system on chip (SoC) và thực hiện bằng FPGA
Hình 3.9. Sơ đồ tín hiệu kết nối giữa các module (Trang 49)
Hình 3.11. Interface module uart_tx.v  Name    Direction    Width    Description - Thiết kế system on chip (SoC) và thực hiện bằng FPGA
Hình 3.11. Interface module uart_tx.v Name Direction Width Description (Trang 51)

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w