Baithuchanhso2_FPGA

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 2

Bài Thực Hành Số 2 - FPGA

Câu 1:

Hình trên thể hiện một thanh ghi dịch 4 bit có khả năng data-load. Khi load = ‘0’, hệ
hoạt động như một thanh ghi dịch thông thường. Ngược lại, khi load = ‘1’, giá trị ở
các chân din được tải vào các DFFs ở xung lên tiếp theo của tín hiệu clk (giá trị khởi
tạo của thanh ghi dịch).
Thiết kế mạch trên bằng “Verilog” và mô phỏng?

Câu 2:

Hình trên thể hiện sơ đồ chuyển trạng thái của một máy trạng thái hữu hạn (Finite
State Machine). Trạng thái A là khởi đầu của máy. Các đường chuyển trạng thái xảy
ra ở các xung lên của tín hiệu clk.
Thiết kế máy trạng thái trên bằng VHDL và chạy mô phỏng?

Câu 3: Vấn đề của State-Bypass và Phương án giải quyết


Chúng ta tiếp tục xem xét máy trạng thái của câu 2. Trên thực tế, khi tín hiệu clk có
tần số rất lớn so với tín hiệu đầu vào x, trạng thái B trở thành trạng thái bị bỏ qua
nhanh (state-bypass). Có nghĩa là khi hệ thống đang ở trạng thái A và x = '1' trong 2
chu kì xung clk trở lên, hệ thống sẽ chuyển rất nhanh sang trạng thái C (chỉ ở trạng
thái B trong đúng 1 chu kì xung đồng hồ).
Để giải quyết vấn đề này, người ta muốn rằng khi hệ thống chuyển từ trạng thái A
sang B, nếu x vẫn tiếp tục giữ giá trị bằng '1' thì hệ thống sẽ ở trạng thái B trong 10
xung đồng hồ rồi mới chuyển sang trạng thái C. Dẫu vậy, khi hệ đang ở trạng thái B
rồi và giá trị x bằng '0' ở một chu kì xung thì hệ sẽ chuyển sang C ngay lập tức
(không cần đủ 10 xung đồng hồ) khi giá trị của x trở lại bằng '1'.
Chỉnh sửa lại code VHDL của câu 2 để thực hiện yêu cầu trên và chạy mô phỏng?

Câu 4:

Hình trên thể hiện một bộ đếm thời gian 2 số thập phân. Bộ đếm (counter) là phần
mạch tuần tự của hệ thống. Bộ đếm sẽ đếm số giây từ 00 đến 60, bắt đầu khi tín hiệu
ena được đặt bằng ‘1’, và dừng lại khi đạt giá trị 60 hoặc ena = ‘0’. Bộ đếm cũng có
tín hiệu reset (rst) để đặt lại giá trị 00. Khi giá trị đếm 60 đạt được, bên cạnh việc
ngừng đếm, tín hiệu full_count cũng được đặt bằng ‘1’
Các bộ SSD driver là phần mạch tổ hợp. Mạch này chuyển đổi số nhị phân 4-bit và
3-bit (đầu ra các số hang chục và đơn vị của counter) thành các tín hiệu 7-bit mã led
7 thanh (mắc chung anode như thể hiện trên hình).
a) Thiết kế bộ counter bằng VHDL. Lấy giá trị tần số xung clk là 10 MHz. Biên dịch
là kiểm tra số logic element mà bộ counter cần. Kiểm tra với các giá trị khác nhau
của tần số xung clk.
b) Thiết kế các bộ SSD driver dùng VHDL (chú ý là mạch phải mô tả hoàn toàn song
song).
c) Thiết toàn bộ hệ (counter + ssd drivers) sử dụng block diagram file. Biên dịch
và mô phỏng hệ trên dùng Modelsim.

You might also like