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

Thiết kế hệ vi xử lý nhúng trên nền tảng công nghệ FPGA

40 1,5K 51
Tài liệu đã được kiểm tra trùng lặp

Đ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ế hệ vi xử lý nhúng trên nền tảng công nghệ FPGA
Tác giả Dương Bá Dũng, Hoàng Thị Yến
Người hướng dẫn Thầy Giáo Đỗ Xuân Tiến, Thầy Giáo Trịnh Quang Kiên
Trường học Học viện Kỹ thuật Quân sự
Thể loại Đề tài
Định dạng
Số trang 40
Dung lượng 1,95 MB

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

Nội dung

Tác giả: Dương Bá Dũng . k42 Hoàng Thị Yến. k44 Học viện Kỹ thuật Quân sự

Trang 1

ĐỀ TÀI: Thiết kế hệ vi xử lý nhúng trên nền tảng công nghệ FPGA

Tác giả: Dương Bá Dũng Ra đa K42

Hoàng Thị Yến ĐTYS K44

Học viện Kỹ thuật Quân sự

Trang 2

Mở đầu

Ngày nay, chúng ta đang sống trong kỷ nguyên của khoa học và công nghệ ,càngngày càng có những đột phá về khoa học và công nghệ mới Đất nước ta đang trong thời

kỳ đổi mới, công nghiệp hoá, hiện đại hoá, với xu thế hội nhập kinh tế quốc tế

Ngành Điện tử - Viễn Thông Việt Nam, một trong những ngành có vai trò quantrọng trong kết cấu hạ tầng cơ sở của nền kinh tế quốc dân cũng đang có sự đóng góp lớnlao cho sự lớn mạnh của nền kinh tế, ổn định chính trị và an ninh quốc phòng nước nhà.Công nghệ Điện tử nói chung và công nghệ FPGA nói riêng ngày càng lớn mạnh ở ViệtNam chúng ta Hầu hết những thiết bị phức tạp đều giải quyết nhiệm vụ trên cơ sở Hệ vi

xử lý Bên cạnh đó,tính linh động cao trong quá trình thiết kế cho phép FPGA giải quyếtnhững bài toán phức tạp mà trước kia chỉ thực hiện nhờ phần mềm máy tính Ngoài ra,nhờ mật độ cổng logic cao, FPGA được ứng dụng cho những bài toán đòi hỏi khối lượngtính toán lớn Những ứng dụng trong thực tế của FPGA rất rộng rãi, bao gồm: Các hệthống hàng không, vũ trụ, quốc phòng, tiền thiết kế mẫu ASIC (ASIC prototyping), các

hệ thống điều khiển trực quan, phân tích nhận dạng ảnh, nhận dạng tiếng nói, mật mãhọc, mô hình phần cứng máy tính Đặc biệt, với khả năng tái lập trình, người sử dụng cóthể thay đổi lại thiết kế của mình chỉ trong vài giờ…

Nhờ những đặc điểm mạnh mẽ và ứng dụng thực tiễn của FPGA cùng với vai trògiải quyết bài toán của Vi xử lý,chúng em đã chọn đề tài “Thiết kế hệ Vi Xử Lý nhúngchuyên năng trên nền tảng công nghệ FPGA” Đề tài được viết bằng ngôn ngữ VHDL

Chúng em xin chân thành cảm ơn thầy giáo Đỗ Xuân Tiến,thầy giáo Trịnh QuangKiên đã tận tình hướng dẫn, giúp đỡ chúng em để có thể hoàn thành đề tài

Trong thời gian ngắn,đề tài nghiên cứu chưa được sâu,kính mong các thầy cô cùngcác bạn góp ý kiến để Đề tài tiếp tục hoàn thiện và phát triển

Trang 3

I. Giới thiệu chung về Hệ Vi Xử Lý.

1. Lịch sử phát triển của chip Vi xử lý.

Những vi mạch tích hợp đầu tiênVới những tiến bộ của công nghệ, vi xử lý đã rađời và phát triển theo thời gian Ba hãng sản xuất chíp Intel, Texas Instruments (TI) vàGarrett AiResearch đã cho ra đời ba bộ vi xử lý cùng một thời điểm với các tên gọi lầnlượt là Intel 4004, TMS 1000 và Central Air Data Computer Đây là ba dự án đầu tiêncho ra đời các bộ vi xử lý hoàn chỉnh

Năm 1968, hãng Garrett đã được mời chế tạo một máy tính số để đua tài với các

hệ thống cơ điện tử và sau đó nó được phát triển để làm bộ điều khiển chính của máy baychiến đấu Tomcat F-14 của Hải quân Mỹ Sản phẩm này đã hoàn thiện vào năm 1970 và

nó sử dụng một chíp được xây dựng bằng công nghệ MOS đóng vai trò là lõi của CPU.Sản phẩm này có kích thước nhỏ hơn và hoạt động tin cậy hơn nhiều lần so với các hệthống cơ điện tử và nó được dùng cho những mô hình máy bay Tomcat đầu tiên Tuynhiên, hệ thống này tân tiến đến mức Hải quân Mỹ đã từ chối việc cấp phép công bố sảnphẩm cho đến tận năm 1997.TI đã phát triển bộ vi xử lý 4-bits TMS 1000 và tập trungvào các ứng dụng nhúng lập trình trước Sau đó, TI đã tiếp tục công bố một phiên bảnkhác gọi là TMS1802NC vào ngày 17 tháng 9 năm 1971 TMS1802NC tích hợp trên nómột bộ tính toán nhằm hỗ trợ khả năng xử lý toán học của vi xử lý Tiếp đến, ngày 15tháng 11 năm 1971, Intel đã công bố vi xử lý 4-bits Intel 4004 được phát triển bởiFederico Faggin

Trang 4

2. Tổng quan về hệ vi xử lí.

Tổ chức chung của hệ vi xử lí được thể hiện trong hình vẽ 1.1

Memory là bộ nhớ trung tâm của hệ vi xử lí gồm hai thành phần Thành phần thứ nhất là bộ nhớ cố định ROM dùng để chứa nội dung chương trình điều hành hoạt động của hệ vi xử lí Nó còn được gọi là chương trình monitor ROM còn được sử dụng để chứa các bảng biểu và các tham số của hệ thống Chương trình trong ROM phải được chuẩn bị trước khi cho hệ thống hoạt động Thành phần thứ hai của bộ nhớ trung tâm là bộ nhớ đọc/ghi RAM được dùng làm môi trường lưu trữ kết quả trung gian, kết quả cuối của của xử lí thông tin Nó cũng được sử dụng để làm vùng đệm dữ liệu cho các thao tác thu phát chuyển đổi số liệu.

I/O là cổng vào ra, có nhiệm vụ giao tiếp giữa hệ vi xử lí và thế giới bên ngoài Thực hiện truyền dữ liệu số nhị phân đã được xử lí từ bên trong hệ thống ra

Trang 5

bên ngoài và thực hiện truyền ngược lại tín hiệu nhị phân từ bên ngoài vào bên trong hệ vi xử lí để thực hiện tín toán và xử lí tín hiệu Có hai loại cổng vào ra: cổng vào ta nối tiếp và cổng vào ra song song Ngoài ra trong hệ vi xử lí còn có bàn điều khiển, hiển thị thực hiện điều khiển hệ thống và hiển thị kết quả điều khiển và trạng thái hoạt động của hệ vi xử lí Các bộ biến đổi tương tự - số (ADC)

và bộ biến đổi số - tương tự (DAC) thực hiện chuyển đổi tín hiệu tương tự sang tín hiệu số nhị phân và ngược lai

Hệ thống trong hệ vi xử thực hiện kết nối liên lạc các bộ phận trong hệ thống với nhau Hệ thống gồm 3 thành phần chính:

Thành phần thứ nhất là địa chỉ là thành phần một chiều bộ vi xử lí dùng nay

để điều khiển các thành phần có trong bằng cách gán cho mỗi thành phần một địa chỉ xác định.

Thành phần thứ hai là kênh dữ liệu Đây là kênh dữ liệu hai chiều thực hiện trao đổi thông tin giữa đơn vị xử lí trung tâm và các thành phần có trong hệ thống.

Thành phần thứ ba là kênh điều khiển Là tập hợp các tín hiệu điều khiển để tạo liên lạc giữa đơn vị xử lí trung tâm và các thành phần có trong hệ nhằm đồng

bộ hóa mọi chế độ và mọi thao tác của hệ thống.

Hệ vi xử lý được sử dụng rộng rãi trong cuộc sống, với các ứng dụng như:

Xử lý ảnh, xử lý tín hiệu, thông tin di động, thiết bị y tế Tính chuyên dụng của các ứng dụng được thể hiện một cách rõ nét khi mà các hệ vi xử lý ra đời phục vụ một lớp bài toán ứng dụng vào từng lĩnh vực cụ thể Các hệ vi xử lý chuyên dụng tuy không mạnh nhưng lại được bán và sử dụng ở nhiều nơi: Các bo mạch tạo nhạc, máy thu hình điện thoại di động, lò vi ba, mạch điện tử trong xe con…

Trong phạm vi nghiên cứu của đề tài chúng em thực hiện thiết kế một hệ vi

xử lý nhỏ gọn, với một tập lệnh chuyên năng đã được thu gọn đơn giản, không hoàn toàn đầy đủ các lệnh như các hệ vi xử lý lớn.

Trang 6

II. Xây dựng hệ vi xử lí cần thiết kế

1. Thiết kết tập lệnh.

a Giới thiệu tập lệnh.

Hoạt động của CPU được xác định bởi các lệnh mà nó thực hiện Các lệnh nàygiống như lệnh cho máy hoạt động…Tập hợp các lệnh khác nhau mà CPU có thể thựchiện được gọi là tập lệnh của CPU Từ tập lệnh định nghĩa được phần dữ liệu và mọiphần khác trong bộ xử lí nên một việc cần thiết đầu tiên là nghiên cứu tập lệnh của nó

Bảng 1.1 Tóm tắt tập lệnh chuyên năng của CPU cần thiết kế Có 28 lệnh đượcnhóm lại làm 4 nhóm: các lệnh toán học và lệnh logic Các lệnh chuyển dữ liệu và cáclệnh bit Xây dựng tập lệnh này dựa trên tập lệnh của các loại vi xử lí và vi điều khiểnthông dụng hiện nay ví dụ: 89C51, Atmel AVR…

25 SETB 0111 0000 I/O(A, b) ← 1 0111 0000 aaaa arrr

26 CLRB 0111 0001 I/O(A, b) ← 0 0111 0001 aaaa arrr

27 IN 0111 0010 Rd ← I/O(A) 0111 0010 dddd iiii

Trang 7

28 OUT 0111 0011 I/O(A) ← Rr 0111 0011 uuuu rrrr

b Các phương pháp định địa chỉ.

CPU có thể truy nhập dữ liệu theo nhiều cách khác nhau Dữ liệu có thể ở trong một thanh ghi, ở trong bộ nhớ hoặc được cho dưới dạng địa chỉ tức thời Cách CPU truy nhập dữ liệu được gọi là chế độ định địa chỉ Trong tập lệnh trên chúng ta đã xây dựng có 4 chế độ định địa chỉ cơ bản:

Chế độ định địa chỉ tức thời: Toán hạng nguồn là một hằng số.

Ví dụ: MOVRFi R1,4 ; // nhập giá trị 4 vào thanh ghi R1.

Chế độ định địa chỉ thanh ghi: Sử dụng thanh ghi để lưu dữ liệu cần thao tác.

Ví dụ: ADD R1,R2 ; // cộng giá trị thanh ghi R1 với thanh ghi R2 và lưu kết quả vào thanh ghi R1.

Chế độ định địa chỉ trực tiếp: Định địa chỉ thanh trực tiếp có thể truy nhập toàn bộ không gian bộ nhớ RAM của hệ vi xử lý.

Ví dụ: MOVRd R1, 7 ;// Dịch chuyển dữ liệu từ ô nhớ địa chỉ là 7 trong RAM vào thanh ghi R1.

Chế độ định địa chỉ gián tiếp thanh ghi: Thanh ghi được sử dụng để trỏ đến

Cho các lệnh yêu cầu hai thanh ghi Ta lựa chọn d là địa chỉ thanh ghi đích còn r làđia chỉ thanh nghi nguồn 4 bit có thể được đánh địa chỉ cho toàn bộ 16 thanh ghi (

) Các lệnh cho cấu trúc này bao gồm ADD, SUB và AND…Đối với nhóm lệnhnày thì 8 bít đầu bao gồm opcode(mã hoạt động) và function(mã chức năng) để xác địnhchức năng của lệnh và 8 bit sau đánh địa chỉ cho hai thanh ghi nguồn(rrrr) và đích(dddd)

Trang 8

Nhóm lệnh này sử dụng bốn bít đầu opcode (mã hoạt động) xác định chức năngcủa mỗi lệnh cũng được sử dụng phân biệt với các lệnh khác Tám bít (kkkkkkk)từ (11…7) và (3…0) chứa giá trị trực tiếp trong câu lệnh Bốn bít (dddd) từ (7…4) xác định địachỉ thanh ghi đích trong tập thanh ghi nháp(tập thanh ghi đa năng RF)

Đối với lệnh rẽ nhánh: lệnh jmp là lệnh nhảy không điều kiện thực hiện nhảy tớimột địa chỉ lệnh trong bộ nhớ lệnh…

Mã máy của từng lệnh được thể hiện trong bảng 1.1

Trang 9

2. Tổ chức hệ vi xử lí.

a Mô tả chân.

(FPGA)clk

Hình 2.1 Mô tả chân của vi xử lí

Hình 2.1 mô tả cấu hình chân cho bộ vi xử lí Bộ vi xử lí có các cổng vào và cổng

ra được quy định rõ Mỗi cổng có 8 chân tương ưng với 8 bit Tín hiệu clk sẽ được đưatrực tiếp vào trong hệ vi xử lí Reset sẽ được đặt ở mức thấp.khi Reset được xác lập thì hệ

vi xử lí ở trạng thái mặc định khi chưa có xung clk

Trang 10

Mux_data

clk clk

Hình 2.1Kiến trúc tổng quát của CPU.

Hình 2.1 chỉ ra sơ đồ khối tổng quát của thiết kế, mỗi khối được đưa ra là mộtmodul cần được thiết kế Trên sơ đồ có 13 khối, trong đó có những khối đơn giản (RF)vànhững khối phức tạp (CU, ALU) Chúng ta phải hiểu các modul đó trước khi bắt tay vàothiết kế từng modul cụ thể

Thực hiện kết nối giữa các khối lại với nhau bằng các đường dữ liệu Có hai loạiđường dữ liệu cơ bản là trực tiếp và chung trực tiếp là các kết nối trực tiếp giữa haikhối với nhau Còn chung kết nối nhiều khối lại với nhau

Trang 11

Chúng ta có thể phân chia hệ thống ra làm các đơn vị và các khối Có hai đơn vị

cơ bản là đơn vị tham chiếu, và đơn vị thực hiện

Đơn vị tham chiếu: Gồm có bộ đếm chương trình (PC), bộ nhớ chương trình(ROM) Thanh ghi lệnh (IR)

Khối thứ nhất của đơn vị tham chiếu là bộ đếm chương trình (PC) PC chứa địa chỉcủa lệnh được thực hiện Nó tham chiếu tới bộ nhớ chương trình (ROM) tới vị trí củalệnh Lệnh từ ROM sẽ được chốt vào trong thanh ghi lệnh (IR) Đơn vị điều khiển sẽmang nội dung của (IR) và giải mã nó Đơn vị điều khiển xác lập tín hiệu điều khiểntương ứng thực hiện lệnh Tất cả các khối được kết nối với nhau bằng trực tiếp

Đơn vị thực hiện trong hệ thực hiện phần lớn các lệnh Bình thường thực hiện mộtlệnh Hai toán tử là đầu ra của tập thanh ghi lệnh tới ALU ALU khi ấy sử dụng toán tử

và gửi kết quả tới dữ liệu Nội dung của dữ liệu được lưu trở lại tập thanh ghi lệnh

Trong thiết kế không thực xử lí đường ống đường ống mà các lệnh được thực hiệnnối tiếp nhau Một lệnh được thực hiện xong thì lệnh kế tiếp mới được thực hiện Chươngtrình và dữ liệu được lưu vào không gian nhớ khác nhau Chương trình được lưu vào bộnhớ cố định ROM và dữ liệu được lưu vào bộ nhớ RAM Tổ chức như vậy sẽ làm đơngiản quá trình tham chiếu lệnh và xuất nhập dữ liệu từ RAM Bình thường RAM có giátrị ban đầu khi nguồn được bật lên Trong FPGA, RAM có thể có giá trị ban đầu nên nó

có thể hoạt động giống như là ROM

Tất cả các khối vào ra đều có một số thanh ghi điều khiển Dữ liệu được nhận vàgửi tới nó thông qua dữ liệu.( Bổ xung thanh ghi điều khiển)

c Thanh ghi truyền.

Trong thiết kế có chứa một số thanh ghi: Thanh ghi lệnh (IR), bộ đếm chươngtrình (PC), các thanh ghi mục đích chung, thanh địa chỉ bộ nhớ, thanh ghi dữ liệu bộ nhớ,

và các thanh ghi điều khiển vào ra Ta có thể tìm thấy nó bên trong các khối trong sơ đồ

Hệ thống làm việc bởi truyền dữ liệu giữa các thanh ghi với nhau(thanh ghi truyền) Dữliệu truyền đi có thể được thay đổi hoặc không được thay đổi trước khi tới thanh ghi tiếptheo, nếu dữ liệu được thay đổi là do nó truyền qua mạch tổ hợp giữa hai thanh ghi Thiết

kế thi hành một chuỗi dài nối tiếp các thanh ghi truyền thực hiện chức năng của một vi xử

lí Hình 2.2 chỉ ra nguyên lí thanh ghi truyền Nó có thể được nhìn thấy trong hình giữacác thanh ghi truyền là các mạch logic tổ hợp một lớp hoặc nhiều lớp biến đổi tín hiệu

Trang 12

Vì vậy quá trình thiết kế là thiết kế các thanh ghi cùng với mạch tổ hợp và quan hệgiữa chúng Đây được gọi là phần dữ liệu (datapath) của hệ thống Tín hiệu điều khiểnđược sử dụng xác định truyền được dữ liêu như thế nào từ thanh ghi nào tới thanh ghi nào

và tại thời điểm nào Tín hiệu điều khiển được xác lâp bởi đơn vị điều khiển

d Đăc tính tín hiệu điều khiển.

Tín hiệu điều khiển được sử dụng để điều khiển phần dữ liệu (datapath) Chúng ta

sẽ tìm hiểu đặc tính của tín hiệu điều khiển trước khi thực hiện các công việc tiếp theo.Thứ nhất một tín hiệu điều khiển có chiều dài nhỏ nhất một xung nhịp clk Nó thườngđược đặt lên sau một thời gian ngắn sau sườn lên của xung nhịp clk Phần dữ liệu chứamột và thanh ghi và các mạch tổ hợp giữa chúng vì vậy chúng ta có hai loại tín hiệu điềukhiển cơ bản: loại thứ nhất là điều khiển các mạch logic tổ hợp và loại thứ hai là điềukhiển các thanh ghi

Khi một mạch logic tổ hợp bắt gặp một tín hiệu điều khiển, nó sẽ hoạt động hướngtín hiệu qua ngay lập tức Ví dụ ADD là tín hiệu điều khiển thực thi phép toán cộng, khi

có tín hiệu ADD ngay lập tức phép toán cộng được thực thi.ngay lập tức Thời gian trễ

Trang 13

của kết quả đầu ra so với tín hiệu đầu vào là thời gia lan truyền tín hiệu qua mạch tổ hợp.Mạch logic tổ hợp ở đây có thể là một đơn vị thực hiện chức năng giống như là bộ cộng,

bộ dịch…

Một tín hiệu điều khiển thanh ghi yêu cầu sườn lên của xung clk để điều khiển Ví

dụ tín hiệu WR_REG có nhiệm vụ chốt dữ liệu vào thanh ghi đích của tập các thanh ghikhi bắt gặp sườn lên của xung clk Từ đó tín hiệu điều khiển được xác lâp tại một thờiđiểm sau một thời gian ngắn sườn lên của xung clk Hoạt động xảy ra ở phía cuối tín hiệuđiều khiển tại đây nó bắt gặp sường lên của xung clk Tín hiệu điều khiển là tín hiệu chophép của các thanh ghi hoặc tín hiệu tăng giảm cho bộ đếm

CLK ADD WR_REG Result[7 0]

Register[7 0]

Hình 2 Giản đồ thời gian tín hiệu điều khiển

Hình trên giải thích sinh động khái niệm Cả hai tín hiệu điều khiển ADD vàWR_REG được xác lập và không được xác lập sau một sườn lên xung clock Tín hiệuADD đưa ra tác động ngay lập tức sau khi nó được xác lập bởi kết quả đầu ra của bộcộng Kết quả có được sau một thời gian trễ phụ thuộc vào tốc độ của bộ cộng Tín hiệuWR_REG chốt kết quả vào trong thanh ghi tại thời điểm kết thúc của tín hiệu khi bắt gặpsườn lên xung clock Kết quả thanh ghi thay đổi giá trị sau sườn lên xung clock một thờigian ngắn

Trang 14

3. Thiết kế phần dữ liệu(datapath).

a Tổng quát

Trong thiết kế hệ vi xử lí chúng ta cần thiết kế hai phần quan trọng: thiết kế phần

dữ liệu và thiết kế phần điều khiển Trong chương này chúng ta thảo luận chi tiết thiết kếphần dữ liệu, chương tiếp theo ta thiết kế phần điều khiển Trong sơ đồ khối hình 2.1 tất

cả các khối ngoại trừ khối điều khiển còn lại các khối khác là thuộc về phần dữ liệu Cáckhối này được thể liệt kê trong hìn phía dưới đây.Ta thiết kế từng khối trong chương này

Các khối trong phần dữ liệu

Bộ đếm chương trìnhThanh ghi lệnh

Bộ nhớ chương trìnhTập các thanh ghi đa năngKhối ALU

Thanh ghi trạng thái

Bộ nhớ dữ liệuCổng vào ra

b. Bộ đếm chương trình.

Bộ đếm chương trình sẽ được tăng lên sau khi lệnh trước nó được thực hiện xong,trong thiết kế một lệnh sẽ được thực hiện trong 4 xung nhịp clock nên cứ sau 4 xung nhịpclock thì thanh ghi bộ đếm chương trình được tăng lên một đơn vị Trong một số trườnghợp gặp lệnh nhảy có điều kiện hoặc không có điều kiện giá trị thanh ghi bộ đếm chươngtrình được nhận giá trị mới là địa chỉ của lệnh cần nhảy tới

Trang 15

Hình 3.1 cấu trúc của bộ đếm chương trình.

Hình 3.1 Chỉ ra cấu trúc của khối bộ đếm chương trình (PC) Pc_out là đầu ra củakhối PC là địa chỉ của lệnh trong ROM Pc_out có độ rộng 8 bit vì vậy PC có thể địnhđịa chỉ cho 256 lệnh Pc_out được kết nối trực tiếp tới ROM Pc_in là giá trị địa chỉ củalệnh mà chương trình cần nhảy tới, tương ứng nó có tín hiệu điều khiển En_in cho phépthanh ghi bộ đếm nhận giá trị của Pc_in Bộ đếm chương trình còn có các tín hiệu điềukhiển Pc_en là tín hiệu cho phép thanh ghi bộ đếm tăng lên một đơn vị Tín hiệu Resetkhi được kích hoạt mức 0 thì đưa giá trị của thanh ghi bộ đếm chương trình về 0.

c Rom

Trang 16

Hình 3.3 Khối bộ nhớ chương trình ROM.

ROM là bộ nhớ chứa chương trình điều khiển hoạt động của hệ vi xử lí Mộtchương là một mạch tổ hợp của một vài lệnh thực hiện một chức năng nào đó Hình 3.2

tổ chức của một bộ nhớ chương trình Tất cả các lệnh có độ dài cố định 16 bit Kíchthước của một từ ROM là 16 bit Tổng kích thước của ROM là 256 bytes Điều này cónghĩa là ROM có thể lưu giữ được 256 lệnh tương ứng với 256 địa chỉ của ROM

Bộ đếm chương trình cung cấp 8 bít địa chỉ thông qua trực tiếp tới ROM Lệnhđầu ra từ ROM sẽ gửi tới thanh ghi lệnh Không có xung clock nào cần cho ROM Nó cóthể là ảnh chiếu giống như một mạch logic tổ hợp Tín hiệu đầu ra sẽ được thay đổi saumột thời gian ngắn sau khi đầu vào thay đổi

d Thanh ghi lệnh(IR)

Thanh ghi lệnh (IR) được sử dụng để lưu giữ lệnh Lệnh được nhận từ bộ nhớchương trình ROM thông qua 16 bit IR sẽ chốt lệnh mới nếu tín hiệu EN được đặt lên.Thanh ghi lệnh kết nối trực tiếp với đơn vị điều khiển để thực hiện giải mã Địa chỉ củathanh ghi đích và thanh ghi nguồn được gửi trược tiếp tới tập các thanh ghi đa năng

Trang 17

e Tập các thanh ghi đa năng (tập thanh ghi mục đích chung).

Trong các hệ vi xử lí thường có số lượng lớn các thanh ghi đa năng ( 32 hoặc 64).Trong phạm vi thiết kế tập các thanh ghi đa năng có 16 thanh ghi đánh số từ 0(0x0) đến15(0xf) Tại một thời điểm, tập các thanh ghi đa năng sẽ kết nối trực tiếp tới ALU thôngqua hai bộ dồn , hai thanh ghi đích và thanh ghi nguồn được đánh địa chỉ trực tiếp từthanh ghi lệnh Giá trị từ dữ liệu có thể được viết trở lại thanh ghi đích nếu như tín hiệuWR_REG được đặt lên địa chỉ được nối tập thanh ghi đa năng và bộ nhớ dữ liệu

Trang 18

RF (General Purpose Register

File)

Data_inrd

rr

Hình 3.5 Tập thanh ghi đa năng.

Hình 3.5 tổ chức tổng quát tập thanh ghi đa năng Các tín hiệu đầu vào rd và rr làđịa chỉ thanh ghi đích và thanh ghi nguồn được đưa tới từ thanh ghi lệnh Còn các tínhiệu đàu vào: reset khởi tạo giá trị ban đầu cho các thanh ghi đa năng, tín hiệu dest có 4bit là địa chỉ của thanh ghi đích đưa tới dữ liệu tới, được đưa tới từ phần điều khiển,wr_reg là tín hiệu điều khiển cho phép ghi dữ liệu vào thanh ghi Data_in có độ dài 8 bit

là dữ liệu được đưa tới từ dữ liệu được đưa vào thanh ghi có địa chỉ dest nếu như tín hiệuwr_reg được xác lập Động tác ghi nội dung từ dữ liệu vào thanh ghi đích được thựchiện ở xung nhịp clock cuối cùng của chu kì lệnh Đầu ra của tập thanh ghi đa năng làReg_rr, Reg_rd có độ dài 8 bit là nội dung của thanh ghi đích và thanh ghi nguồn đượcđưa tới ALU thực hiện thao tác biến đổi tín hiệu.Ở xung nhịp thứ hai của chu kì lệnh tínhiệu Reg_rr và Reg_rd được đưa ra

f Thiết kế ALU.

ALU là đơn vị logic toán học thực hiện biến đổi tín hiệu Ta xem xét các lệnh cơbản được thực hiện bởi ALU Chúng được đưa vào năm nhóm lệnh cơ bản ADD,SUBCP, LOGIC, RIGHT Nhóm lệnh ADD thực hiện thao tác cộng nhóm lệnh SUBCPthực hiện thao tác trừ và so sánh, nhóm LOGIC thực hiện thao tác logic RIGHT thựchiện thao tác dịch dữ liệu

Trang 19

Tham chiếu toán tử

Đơn vị thực hiện

Đơn vị đánh giá cờ trạng thái

Data_bus

Reg_rr Reg_rd imm

Cờ trạng thái

Đơn vị thực hiện bao gồm 4 đơn vị con thể hiện trên hình 3.7 đơn vị conAlu_add_sub thực hiện cả hai nhóm lệnh ADD và SUB Đơn vị con Alu_logic thực hiệnthực hiện nhóm lệnh LOGIC Đơn vị con Alu_shift thực hiện nhóm lệnh SHIFT

Trang 20

Out_mux

In_4

a b

sub

ls

ss

sb ci

Hình 3.7 Tổ chức của đơn vị thực hiệnAlu_add_sub thực hiện cộng hai toán tử ORA và ORB khi tín hiệu sl_sub ở mứcthấp và ngược lại khi tín hiệu sl_sub ở mức cao nó sẽ thực hiện trừ hai toán tử ORA vàORB cho nhau

Alu_logic thực hiện dựa trên tín hiệu logic_sel

logic_sel:

000001010011100101110

logic_out <= not blogic_out <= a and blogic_out <= a nand blogic_out <= a or blogic_out <= a nor blogic_out <= a xor blogic_out <= a xnor b

Ngày đăng: 22/04/2013, 20:59

HÌNH ẢNH LIÊN QUAN

Hình 1.1: Kiến trúc chung hệ vi xử lí. - Thiết kế hệ vi xử lý nhúng trên nền tảng công nghệ FPGA
Hình 1.1 Kiến trúc chung hệ vi xử lí (Trang 4)
Hình 2.1Kiến trúc tổng quát của CPU. - Thiết kế hệ vi xử lý nhúng trên nền tảng công nghệ FPGA
Hình 2.1 Kiến trúc tổng quát của CPU (Trang 10)
Hình 2. Giản đồ thời gian tín hiệu điều khiển. - Thiết kế hệ vi xử lý nhúng trên nền tảng công nghệ FPGA
Hình 2. Giản đồ thời gian tín hiệu điều khiển (Trang 13)
Hình 3.1 cấu trúc của bộ đếm chương trình. - Thiết kế hệ vi xử lý nhúng trên nền tảng công nghệ FPGA
Hình 3.1 cấu trúc của bộ đếm chương trình (Trang 15)
Hình 3.3 Khối bộ nhớ chương trình ROM. - Thiết kế hệ vi xử lý nhúng trên nền tảng công nghệ FPGA
Hình 3.3 Khối bộ nhớ chương trình ROM (Trang 16)
Hình 3.4 Cấu trúc thanh ghi lệnh . - Thiết kế hệ vi xử lý nhúng trên nền tảng công nghệ FPGA
Hình 3.4 Cấu trúc thanh ghi lệnh (Trang 17)
Hình 3.5 Tập thanh ghi đa năng. - Thiết kế hệ vi xử lý nhúng trên nền tảng công nghệ FPGA
Hình 3.5 Tập thanh ghi đa năng (Trang 18)
Hình 3.6 Tổ chức ALU. - Thiết kế hệ vi xử lý nhúng trên nền tảng công nghệ FPGA
Hình 3.6 Tổ chức ALU (Trang 19)
Hình 3.7 Tổ chức của đơn vị thực hiện - Thiết kế hệ vi xử lý nhúng trên nền tảng công nghệ FPGA
Hình 3.7 Tổ chức của đơn vị thực hiện (Trang 20)
Hình 4.1 Sơ đồ thực hiện cpu - Thiết kế hệ vi xử lý nhúng trên nền tảng công nghệ FPGA
Hình 4.1 Sơ đồ thực hiện cpu (Trang 23)
Hình 1: Sơ đồ khối thực hiện lệnh CPU - Thiết kế hệ vi xử lý nhúng trên nền tảng công nghệ FPGA
Hình 1 Sơ đồ khối thực hiện lệnh CPU (Trang 29)
Hình 1.1 Sơ đồ thực hiện lệnh add - Thiết kế hệ vi xử lý nhúng trên nền tảng công nghệ FPGA
Hình 1.1 Sơ đồ thực hiện lệnh add (Trang 32)
Hình 1.2 Xung nhịp thứ hai của lệnh add. - Thiết kế hệ vi xử lý nhúng trên nền tảng công nghệ FPGA
Hình 1.2 Xung nhịp thứ hai của lệnh add (Trang 34)
Hình 2: Sơ đồ thực hiện lệnh MOVRd. - Thiết kế hệ vi xử lý nhúng trên nền tảng công nghệ FPGA
Hình 2 Sơ đồ thực hiện lệnh MOVRd (Trang 37)
Hình 2.2: Thực hiện xung nhịp thứ tư của lệnh MOVRd. - Thiết kế hệ vi xử lý nhúng trên nền tảng công nghệ FPGA
Hình 2.2 Thực hiện xung nhịp thứ tư của lệnh MOVRd (Trang 38)

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w