HDL Chuong7 Nhom2

Preview:

DESCRIPTION

hdl

Citation preview

Thi t k m ch s dùng HDLế ế ạ ố

Thực hiện: Nhóm Hột Mít Lùi TroNguyễn Minh Trí - 51204060

Nguyễn Thanh Vinh – 51204547Ngô Đức Minh – 51202143

Phạm Hồng Bảo Trân - 51203999

Ch ng 7ươ : Thi t k và t ng h p ế ế ổ ợb đi u khi n dòng d li uộ ề ể ữ ệ

Máy tuần tự phân hoạch • Ví dụ thiết kế Binary counterRISC Stored-Program Machine• Ví dụ thiết kế UART

Nội dung chính:

Control-dominated• Là hệ thống đáp ứng đáp lại tác động bên

ngoài.

Data-dominated• Yêu cầu tính toán và truyền nhận dữ liệu với

hiệu suất cao• Hệ thống thông tin liên lạc, xử lý tín hiệu,…

Phân loại hệ thống số:

►Máy tuần tự được phân loại và phân hoạch thành bộ dòng dữ liệu và bộ điều khiển

Bộ dòng dữ liệu – datapaths unit

• Bộ số học luận lý (arithmetic logic unit -ALU)

• Bộ cộng

• Bộ nhân

• Bộ xử lý tín hiệu số

• Quản lý tài nguyên (registers)

Mô hình điều khiển cho dòng dữ liệu

Các bước thiết kế:

• Application-driven• Lựa chọn cấu trúc hỗ trợ cho tập lệnh trong ứng dụng• Định nghĩa các trạng thái điều khiển hỗ trợ tập lệnh• Xây dựng FSM sinh ra tín hiệu điều khiển

• Máy trạng thái không tường minh:• count <= count + 1

• Phân hoạch thành bộ điều khiển và bộ dòng dữ liệu (Binary_Counter_Arch)

• Máy trạng thái tường minh • (Binary_Counter_STG)

• ASM

• RTL

Ví dụ Binary Counter:

Binary_Counter_Arch:

Binary_Counter_STG:

ASM:

Binary_Counter_Part_RTL:

Tổng hợp mạch Binary_Counter_Part_RTL:

Tổng hợp mạch Binary_Counter_Part_RTL

RISC: Reduced instruction-set computers

• Tập lệnh đơn giản• Số chu kỳ clock cho mỗi lệnh là nhỏ• clock cycle ngắn• RISC SPM được tối ưu hóa để thực hiện

các lệnh theo cơ chế đường ống 1 cách hiệu quả

Thiết kế máy RISC:

Vai trò của HDLs:

• Mô hình hóa hệ thống• Hoạt động như 1 phương tiện mô tả

có thể được sử dụng bới 1 công cụ tổng hợp.

Kiến trúc của RISC_SPM:

Lấy lệnh từ bộ nhớ• Các tác vụ trên bộ ALU• Cập nhật giá trị thanh ghi lưu trữ• Cập nhật bộ đếm chương trình (PC)• Cập nhật thanh ghi lệnh (IR)• Cập nhật thanh ghi địa chỉ (ADD_R)• Cập nhật bộ nhớ• Điều khiển dòng dữ liệuGiải mã lệnh và lấy toán hạng

Thực thi lệnh

Trình tự thực thi:

Chức năng bộ điều khiển

• Định thời tất cả các hoạt động• Lựa chọn đường dữ liệu từ các bộ

multiplexer• Giám sát trạng thái của bộ xử lý

(ProcessingUnit) và quyết định giá trị tín hiệu điều khiển

• Điều khiển các bus 3 trạng thái

Bộ điều khiển – Controller:

Tín hiệuLoad_Add_RegLoad _PCLoad_IRInc_PCSel_Bus_1_Mux

Sel_Bus_2_Mux

Load_R0Load_R1Load_R2Load_R3Load_Reg_YLoad Reg_Zwrite

Chức năngLoads the address registerLoads Bus_2 to the program counterLoads Bus_2 to the instruction registerIncrements the program counterSelects among the Program_Counter,R0, R1, R2, and R3 to drive Bus_1Selects among Alu_out, Bus_1, andmemory to drive Bus_2Loads general purpose register R0Loads general purpose register R1Loads general purpose register R2Loads general purpose register R3Loads Bus_2 to the register Reg_YStores output of ALU in register Reg_ZLoads Bus_1 into the SRAM memory

Thiết kế controller phụ thuộc vào tập lệnh

• Lệnh ngắn • Lệnh dài

Có hai dạng thứ lệnh

RISC_SPM: Tập lệnh

RISC có 3 pha xử lý: fetch, decode và execute

• fetch: lấy 1 lệnh từ bộ nhớ (2 chu kỳ clock)• decode: giải mã lệnh, tính toán dòng dữ liệu và load giá trị vào thanh ghi (1 chu kỳ

clock)• execute: sinh ra kết quả câu lệnh (0, 1, 2 chu kỳ clock)

Thiết kế bộ controller

Các trạng thái của controller:S_idle State entered after reset is asserted. No action.S_fet1 Load the Add_R with the contents of the PC S_fet2 Load the IR with the word addressed by the Add_R, Increment the PCS_dec Decode the IR,

Assert signals to control datapaths and register transfers.S_ex1 Execute the ALU operation for a single-byte instruction,

Conditionally assert the zero flag,Load the destination register

S_rd1 Load Add_R with the second byte of an RD instructionIncrement the PC.

S_rd2 Load the destination register with memory[Add_R]S_wr1 Load Add_R with the second byte of a WR instruction,

Increment the PC.S_wr2 Write memory[Add_R] with the source registerS_br1 Load Add_R with the second byte of a BR instruction

Increment the PC.S_br2 Load the PC with the memory[Add_R]S_halt Default state to trap failure to decode a valid instruction

Controller ASM: NOP/ADD/SUB/AND

Controller ASM: NOT

Controller ASM: RD

Controller ASM: WR

Controller ASM: BR/BRZ

RISC_SPM

UART Block Diagram

UART_Transmitter_Arch

XStateMachine Controller for UART Transmitt

Input Signals

Byte_ready: Máy chủ (host) cho biết Data_Bus có dữ liệu hợp lệ.

Load_XMT_datareg: Cho biết chuyển Data_Bus đến XMT_datareg (transmiter data storage register)

T_byte: Xác nhận khởi tạo sự truyền 1 byte dữ liệu gồm stop, start và parity bit.

Bit_count: Đếm số bit của word trong quá trình truyền.Load_XMT_shftreg: cho biết việc chuyển dữ liệu từ

XMT_datareg vào XMT_shftregStart: Tín hiệu bắt đầu quá trình truyền.Shift: dịch từ bit của vào XMT_shftreg về phía LSB và

điền stop bit vào cuối.Clear: xóa thanh ghi bit_count.

ASMD Chart

ASMD Chart

XMT_shftreg [8:0] Serial output sequence

UART CODE

UART CODE

UART CODE

UART Simulate

UART Simulate

UART_Receive

UART Receiver

UART Receiver

UART Receiver

UART Receiver

UART Receiver

UART Receiver

UART Receiver

UART Receiver

Câu hỏi thảo luận:

Thanks for your listening!

The End!