Hình3- 18: Sơ ựồ kiến trúc của vi xử lý.

Một phần của tài liệu thiết kế trên kít FPGA DE2 của Altera (Trang 50 - 54)

khối của vi ựiều khiển như ựược chỉ ra trên hình 3-18 gồm toàn bộ các ựơn vị chức năng, các ựường bus kết nối giữa các ựơn vị chức năng, luồng ựi của dữ liệu trong vi xử lý và ựộ rộng của các ựường dữ liệu.

Chương ba ựã trình bày về kiến trúc của vi xử lý ựược sử dụng trong vi ựiều khiển, thiết kế luồng dữ liệu và mô ựun ựiều khiển, thiết kế bộ nhớ chương trình cũng như bộ nhớ dữ liệu. Các chương tiếp theo sẽ dựa vào các thiết kế của chương này, dùng các ngôn ngữ mô tả phần cứng ựể thiết kế, mô phỏng vi ựiều khiển. EEPROM 2048x12 INSTRUCTION REGISTER INSTRUCTION DECODER PC STACK1 STACK2 STACK3 STACK4 W ALU STATUS

TRISA PORTA TRISB PORTB TRISC PORTC

8 8 8 DATA BUS FROM W 8 FROM W 8 FROM W 8 8 TMR0 FSR GENERAL PURPOSE REGISTER FILE 8 8 5-7 9 12 12 5 8 11 11 8 OPTION REG PRESCALER T0CKI FREQUENCY DIVIDER

Chương 4: THIẾT KẾ TESTBENCH VÀ PHƯƠNG PHÁP MÔ PHỎNG TRÊN MODELSIM

Trong quy trình thiết kế các hệ thống LSI, thường rất mất thời gian vào việc verification. Quá trình verification có thể chia ra làm hai gian ựoạn, giai ựoạn thứ nhất là verification trên máy tắnh dùng các phần mềm mô phỏng RTL, trong luận văn này tác giả dùng phần mềm ModelSim của Mento graphic ựể mô phỏng chức năng cũng như giản ựồ xung của hệ thống. Mô phỏng chức năng ựể kiểm tra xem thiết kế ựã thực hiện ựược ựúng các yêu cầu ựặt ra hay chưa trong ựiều kiện lý tưởng ( không quan tâm tới tốc ựộ của clock, coi như thời gian trễ truyền tắn hiệu giữa các cổng bằng không). Mô phỏng này rất quan trọng vì nó ựảm bảo không còn lỗi trong chương trình lập trình, không có lỗi trong mã nguồn RTL và các chức năng ựặt ra ban ựầu ựạt yêu cầu. Sau khi ựã ựảm bảo rằng không còn lỗi nào và ựảm bảo thực hiện ựúng các chức năng ựược thiết kế ban ựầu, tiếp theo ta phải mô phỏng hệ thống thực, mô phỏng trong ựiều kiện thực tế, mô phỏng thực tế thường có thể hiểu chắnh là việc thử prototype trên FPGA. Việc mô phỏng này ựảm bảo rằng thiết kế của ta sẽ chạy ựúng trên hệ thống thực.

Chương này sẽ trình bày cơ sở lý thuyết, phương pháp luận của việc thiết kế testbench ựể mô phỏng và kiểm tra chức năng của phần cứng ựược thiết kế. Chương tiếp theo sẽ trình bày thiết kế các module phần cứng theo như thiết kế datapath và ựiều khiển ở chương trên, sau ựó sẽ kiểm tra (verify) các module này.

Ngày nay sự phát triển ngày càng phức tạp của các hệ thống nhúng ựã tạo ra rất nhiều thách thức ựối với những chuyên gia phát triển phần cứng bởi vì các hệ thống ngày nay là sự tắch hợp của cả phần cứng và phần mềm, không những vậy các yêu cầu về chất lượng và ựộ ổn ựịnh của hệ thống ngày càng cao. Gần ựây, cả các kĩ sư công nghệ cũng như những nhà nghiên cứu ựã phát triển một số lớn các kĩ thuật verification hệ thống ựộng theo kiểu ựồng mô phỏng (mô phỏng cả phần cứng và phần mềm cùng một lúc). Trên thực tế những kĩ thuật này dựa trên các ựặc ựiểm khác nhau của các thành phần phần cứng và phần mềm của một hệ thống nhúng. Tuy nhiên, một phương pháp ựược chấp nhận rộng rãi ựã không tồn tại. Do ựó trong chương này, tác giả xin trình bày một cái nhìn tổng quan về mô hình hóa dựa vào mô phỏng, và các chiến thuật verification ựược áp dụng cho các hệ thống nhúng. Thực tế chương này tập trung vào mô tả những cách tiếp cận các phương

pháp ựồng mô phỏng tiên tiến nhất và các kĩ thuật verification dựa vào mô phỏng sai và kiểm tra xác nhận.

4.1. Gii thi u

Một hệ thống nhúng có thể ựược ựịnh nghĩa như là một máy tắnh (một thành phần của hệ thống lớn) mà dựa vào vi xử lý của nó[1,2]. Vì vậy chúng ta có thể coi chúng như là việc tổ hợp các phần cứng và phần mềm cùng hoạt ựộng với nhau, những thành phần phần cứng và phần mềm này có khả năng cung cấp tập hợp các chức năng phức tạp một cách rộng hơn và dễ dàng thắch ứng hơn trong các yêu cầu khác nhau nếu ta so sánh với một hệ ASIC. Những hệ thống này cũng không ựòi hỏi nhiều tài nguyên phần cứng như các hệ dùng cho chức năng chung khác. Vắ dụ về hệ thống nhúng như bộ ựiều khiển cho một quá trình trong công nghiệp, các ứng dụng tự ựộng hóa, các thiết bị y tế, các hệ thống multimedia cầm tay, hệ thống thu thập dữ liệu v.vẦ đặc tắnh chắnh của một hệ thống nhúng là khả năng phản ứng, chúng phải liên tục tương tác với các sự kiện không ựồng bộ ở lối vào. Hơn nữa, những hệ thống như vậy thực sự thắch hợp với những ứng dụng thời gian thực, hệ thống mà những nhiệm vụ của nó phải ựược thực hiện trong một khoảng thời gian xác ựịnh, một cách có chu kì có thể trở thành một vấn ựề chắnh. Trong những ứng dụng như vậy, cần ựòi hỏi khả năng thắch ứng của hệ thống.

Thậm chắ nếu một hệ thống nhúng, vì tắnh chất lịch sử nào ựó phải hoạt ựộng với một nguồn tài nguyên hạn chế, vắ dụ như bộ nhớ hoặc sức mạnh tắnh toán, ngày nay chúng ta ựã tăng ựược tài nguyên của chúng dựa vào việc cái tiến công nghệ bán dẫn. Trong thực tế, công nghệ luôn luôn tạo ra các cơ hội mới nhưng ựồng thời cũng tạo ra những thách thức mới cho những kĩ sư thiết kế hệ thống. định luật More dự ựoán rằng ựộ phức tạp của hệ thống sẽ tăng gấp ựôi sau chu kì hai năm. Các chip hiện nay ựược tạo thành từ vài chục triệu cửa, tương ứng với nó là vài trăm triệu transitor, thậm chắ với những sản phẩm thương mại gần ựây, số transitor trên một chip của Intel ựã tăng lên ựến con số 1 tỷ transitor nhờ vào công nghệ 45nm. Bởi vậy, những hệ thống mà ngày hôm qua ựược thiết kế bởi việc kết nối nhiều chip với nhau thì hôm nay ựã có thể tắch hợp chúng trên một chip duy nhất, bao gồm nhiều hệ thống con phức tạp trên cùng một tấm bán dẫn. Những hệ thống như vậy gọi là hệ thống trên một chip (System-on-chip) SoC, những hệ thống này ựã cho thấy nó là một tiến hóa rất lớn cho các hệ thống nhúng[3]. Một vài ưu ựiểm ựã làm cho các hệ thống này rất hấp dẫn ựối với những nhà phát triển hệ thống. Khi ựộ phức tạp của một hệ thống tăng lên, số lượng chân kết nối ra bên ngoài cũng tăng lên, bởi vậy nó cũng làm cho việc kết nối nhiều hệ thống con với

nhau trở nên ựơn giản hơn, rẻ hơn khi so sánh với việc kết nối nhiều chip trên một mạch in. Hơn nữa, ựiện dung kắ sinh của việc ựi dây trên chip là nhỏ hơn rất nhiều so với khi kết nối trên mạch in, ựiều này làm cho hệ thống có thể có hiệu suất cao hơn và tiêu tốn ắt năng lượng hơn.

Nói một cách khác, phát triển một hệ thống, rất phức tạp, SoC ựòi hỏi rất nhiều thách thức với các nhà phát triển.

4.2. Thit k h mô ph?ng.

Kiểm tra hệ thống ựộng ựối mặt với việc chỉnh sửa thiết kế bằng cách sử dụng kĩ thuật mô phỏng. Trong kiểm tra hệ thống ựộng, các chức năng của mô hình về cơ bản ựuợc kiểm tra bằng cách tạo ra rất nhiều các tắn hiệu ựầu vào (stimuli input), có thể coi như tập hợp các testcase, sau ựó mô phỏng ựể quan sát hoạt ựộng của thiết kế dựa trên những ựầu ra cơ bản. Tập hợp các testcase ựược tạo ra ở mức trừu tượng hóa cụ thể và có thể sử dụng lại ở các mức thập hơn sau khi các bước tổng hợp và còn có thể ựược sử dụng sau khi ựã ựược chế tạo ở mức cứng. Có thể số lượng testcase ở mỗi mức sẽ khác nhau, càng ở mức sâu hơn càng cần phải có nhiều testcase hơn. Trong luận văn này, tác giả sử dụng phương pháp mô phỏng ựể kiểm tra hệ thống ựúng theo cách vừa nêu, sau khi ựã thiết kế xong lõi của vi xử lý, tác giả ựã viết một số testbench ựể kiểm tra và chạy thử hệ thống trên cùng một môi trường mô phỏng và cả trên phần cứng.

Các cách tiếp cận dựa vào mô phỏng truyền thống có thể ựược triển khai ựể kiểm tra lại toàn bộ hệ thống nhúng trước khi phân chia thành phần cứng và phần mềm. Tuy nhiên, thách thức lớn nhất là thực hiện ựồng kiểm tra giữa phần cứng và phần mềm. Sự tắch hợp và ựồng bộ giữa các mô ựun phần cứng và phần mềm ựòi hỏi những ựiều khiển trong suốt và ựồng nhất ựể có thể thực thi một cách hiệu quả bằng cách khai thác môi trường ựồng mô phỏng.

đồng mô phỏng trở thành bước bắt buộc sau khi phần chia hệ thống nhúng thành phần cứng và phần mềm. Bởi vì lý do này, một vài môi trường ựồng mô phỏng ựã ựược phát triển trong một vài năm qua [9]. Mặc dù có rất nhiều kiến trúc khác nhau, hiệu quả của hệ thống khá nhau, ngôn ngữ mô tả phần cững khác nhau nhưng ta vẫn có thể phân chia các giải pháp khác nhau này thành hai chủng loại môi trường ựồng mô phỏng cơ bản: ựồng nhất, không ựồng nhất [9].

Môi trường mô phỏng ựồng nhất sử dụng cùng một môi trường mô phỏng ựể thực hiện mô phỏng cả phần cứng và phần mềm (hình 4-1). Môi trường mô phỏng ựồng nhất ựược thực thi bởi việc trừu tượng hóa sự khác nhau giữa phần cứng và

phần mềm bằng cách mô phỏng chúng như là những khối chức năng. Môi trường này làm ựơn giản hóa việc mô hình hóa thiết kế và cho kết quả tốt. Tuy nhiên, chúng chỉ phù hợp cho những pha cơ bản ựầu tiên trong quá trình thiết kế, trước khi phân chia phần cứng và phần mềm. Phần cứng và phần mềm sẽ sử dụng các kĩ thuật khác nhau, các công cụ khác nhau khi mà mỗi trừu tượng hệ thống dần chuyển sang phần thực thi trên hệ thống thực.

Hình 4 - 1 Môi trường ựồng mô phỏng ựồng nhất.

Một phần của tài liệu thiết kế trên kít FPGA DE2 của Altera (Trang 50 - 54)

Tải bản đầy đủ (PDF)

(102 trang)