Mục lục:

Đồng hồ bấm giờ cơ bản sử dụng VHDL và Bảng Basys3: 9 bước
Đồng hồ bấm giờ cơ bản sử dụng VHDL và Bảng Basys3: 9 bước

Video: Đồng hồ bấm giờ cơ bản sử dụng VHDL và Bảng Basys3: 9 bước

Video: Đồng hồ bấm giờ cơ bản sử dụng VHDL và Bảng Basys3: 9 bước
Video: Bài 1. Hướng dẫn thiết kế và mô phỏng FPGA với phần mềm ISE Design Suite tích hợp ISIM 2024, Tháng bảy
Anonim
Image
Image

Chào mừng bạn đến với tài liệu hướng dẫn về cách chế tạo đồng hồ bấm giờ bằng bảng VHDL và Basys 3 cơ bản. Chúng tôi rất vui mừng được chia sẻ dự án của chúng tôi với bạn! Đây là dự án cuối cùng cho khóa học CPE 133 (Thiết kế kỹ thuật số) tại Cal Poly, SLO vào mùa Thu năm 2016. Dự án chúng tôi xây dựng là một chiếc đồng hồ bấm giờ đơn giản có thể khởi động, đặt lại và tạm dừng thời gian. Nó có ba nút nhấn trên bảng Basys3 làm đầu vào và thời gian được hiển thị trên màn hình bốn chữ số bảy phân đoạn của bảng. Thời gian đã trôi qua được hiển thị ở định dạng giây: centiseconds. Nó sử dụng đồng hồ hệ thống của bo mạch làm đầu vào để theo dõi thời gian đã trôi qua và xuất thời gian thành bốn chữ số của màn hình bảy đoạn.

Bước 1: Vật liệu

Đặt đầu vào và đầu ra
Đặt đầu vào và đầu ra

Các tài liệu bạn sẽ cần cho dự án này:

  • 1 máy tính có cài đặt Vivado Design Suite WebPack từ Xilinx (ưu tiên phiên bản 2016.2)
  • 1 Digilent Basys 3 Xilinx Artix-7 FPGA bảng
  • 1 cáp cổng USB

Bước 2: Thiết lập đầu vào và đầu ra

Hình trên cho thấy sơ đồ khối cấp cao nhất của mô-đun đồng hồ bấm giờ chính. Đồng hồ bấm giờ nhận các đầu vào "CLK" (đồng hồ), "S1" (nút bắt đầu), "S2" (nút tạm dừng) và "RST" (đặt lại) và có đầu ra 4 bit "Cực dương", 7 bit đầu ra "phân đoạn" và đầu ra một bit "DP" (dấu thập phân). Khi đầu vào "S1" ở mức cao, đồng hồ bấm giờ bắt đầu đếm thời gian. Khi "S2" ở mức thấp, đồng hồ bấm giờ sẽ tạm dừng thời gian. Khi "RST" ở mức cao, đồng hồ bấm giờ sẽ dừng và đặt lại thời gian. Có bốn mô-đun con trong mạch: bộ chia đồng hồ, bộ đếm chữ số, trình điều khiển hiển thị bảy đoạn và bộ mã hóa hiển thị bảy đoạn. Mô-đun chính của đồng hồ bấm giờ liên kết tất cả các mô-đun con với nhau và với các đầu vào và đầu ra.

Bước 3: Làm đồng hồ

Làm đồng hồ
Làm đồng hồ

Mô-đun bộ chia đồng hồ lấy đồng hồ hệ thống và sử dụng đầu vào số chia để tạo ra đồng hồ có tốc độ bất kỳ không lớn hơn tốc độ của đồng hồ hệ thống. Đồng hồ bấm giờ sử dụng hai mô-đun đồng hồ khác nhau, một mô-đun tạo ra đồng hồ 500 Hz và một mô-đun khác tạo ra đồng hồ 100 Hz. Sơ đồ cho bộ chia đồng hồ được hiển thị trong hình trên. Bộ chia xung nhịp nhận đầu vào một bit "CLK" và đầu vào 32 bit "Bộ chia" và đầu ra bit đơn "CLKOUT". "CLK" là đồng hồ hệ thống và "CLKOUT" là đồng hồ kết quả. Mô-đun cũng bao gồm một cổng NOT, cổng này sẽ chuyển tín hiệu "CLKTOG" khi số đếm đạt đến giá trị của số chia.

Bước 4: Đếm đến mười

Đếm đến mười
Đếm đến mười

Bộ đếm chữ số đếm từng chữ số từ 0 đến 10 và tạo ra một đồng hồ khác để chữ số tiếp theo hoạt động khỏi dao động đó khi số đếm đạt đến 10. Mô-đun nhận 3 đầu vào bit đơn "S", "RST" và "CLK "và kết quả là đầu ra một bit" N "và đầu ra 4 bit" D ". Đầu vào "S" là kích hoạt đầu vào. Đồng hồ bật khi "S" ở mức cao và tắt khi "S" ở mức thấp. "RST" là đầu vào đặt lại để đồng hồ đặt lại khi "RST" ở mức cao. "CLK" là đầu vào đồng hồ cho bộ đếm chữ số. "N" là đầu ra đồng hồ trở thành đồng hồ đầu vào cho chữ số tiếp theo. Đầu ra "D" trình bày giá trị nhị phân của chữ số mà bộ đếm đang ở.

Bước 5: Hiển thị số

Hiển thị số
Hiển thị số

Bộ mã hóa hiển thị bảy đoạn sẽ mã hóa số nhị phân nhận được từ mô-đun trình điều khiển hiển thị bảy đoạn và biến nó thành một luồng bit sẽ được hiểu là giá trị '1' hoặc '0' cho mỗi phân đoạn của màn hình. Số nhị phân được mô-đun nhận dưới dạng "chữ số" đầu vào 4 bit và kết quả là "phân đoạn" đầu ra 7 bit. Mô-đun bao gồm một khối xử lý trường hợp duy nhất chỉ định một luồng 7 bit cụ thể cho mỗi giá trị đầu vào có thể có từ 0 đến 9. Mỗi bit trong các luồng bảy bit đại diện cho một trong bảy phân đoạn của các chữ số trên màn hình. Thứ tự của các phân đoạn trong luồng là “abcdefg” với ‘0 là đại diện cho các phân đoạn sáng lên cho một số nhất định.

Bước 6: Cách hiển thị đồng hồ bấm giờ

Cách hiển thị đồng hồ bấm giờ
Cách hiển thị đồng hồ bấm giờ

Trong mô-đun trình điều khiển hiển thị bảy đoạn, có bốn đầu vào 4 bit "D0", "D1", "D2" và "D3", mỗi đầu vào đại diện cho bốn chữ số sẽ được hiển thị. Đầu vào "CLK" là đầu vào xung nhịp của hệ thống. Đầu ra một bit "DP" đại diện cho dấu thập phân trên màn hình bảy đoạn. Đầu ra 4 bit "Cực dương" xác định chữ số nào trên màn hình bảy đoạn được hiển thị và "nhiệt độ" đầu ra 4 bit phụ thuộc vào trạng thái của đầu vào điều khiển 2 bit "SEL". Mô-đun sử dụng 4 bộ ghép kênh cho đầu vào điều khiển "SEL" và ba đầu ra; "Cực dương", "nhiệt độ" và "DP".

Bước 7: Kết hợp tất cả lại với nhau

Một khối quy trình 'nếu' chạy trên đồng hồ 500Hz được sử dụng để tạo các nút bắt đầu và tạm dừng. Sau đó, liên kết tất cả các mô-đun con với nhau trong mô-đun chính của đồng hồ bấm giờ bằng cách khai báo các thành phần của từng mô-đun con riêng lẻ và sử dụng các tín hiệu khác nhau. Các mô-đun con chữ số nhận đầu ra xung nhịp của mô-đun con chữ số trước đó với mô-đun đầu tiên nhận xung nhịp 100Hz. Các đầu ra "D" của các mô-đun con chữ số sau đó trở thành đầu vào "D" của mô-đun trình điều khiển hiển thị bảy phân đoạn. Và cuối cùng, đầu ra "tạm thời" của mô-đun trình điều khiển hiển thị bảy đoạn sẽ trở thành đầu vào "tạm thời" của mô-đun bộ mã hóa bảy đoạn.

Bước 8: Ràng buộc

Hạn chế
Hạn chế

Sử dụng 3 nút nhấn (W19, T17 và U18) cho đầu vào "RST", "S1" và "S2". W19 là nút khởi động lại, T17 là nút khởi động (S1) và U18 là nút tạm dừng (S2). Một ràng buộc đối với đầu vào đầu vào xung nhịp cũng được yêu cầu bằng cách sử dụng cổng W5. Ngoài ra, hãy nhớ thêm dòng này vào ràng buộc đồng hồ:

create_clock -add -name sys_clk_pin -period 10.00 -waveform {0 5} [get_ports {CLK}]

Đồng thời liên kết các Cực dương và các phân đoạn với bảng để đồng hồ bấm giờ được hiển thị trên màn hình bảy phân đoạn như được thấy trong tệp ràng buộc.

Bước 9: Kiểm tra

Thử nghiệm
Thử nghiệm

Đảm bảo thiết bị của bạn hoạt động bằng cách chơi với ba nút: nhấn và giữ chúng theo mọi thứ tự có thể để tìm bất kỳ sự cố nào có thể xảy ra với mã của bạn.

Đề xuất: