Tải bản đầy đủ (.pdf) (35 trang)

Thiết kế mạch bằng VHDL và mô phỏng trên basys 3 – artix 7

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.26 MB, 35 trang )

Các bước thiết kế mạch bằng VHDL và mô phỏng trên Basys 3 – Artix 7
- Tạo dự án
- Tổng hợp thiết kế
- Tạo thực thi thiết kế
- Thiết kế các ràng buộc (constraints) và điều khiển
- Tối ưu thực thi thiết kế
1) Tạo một dự án mới (project)
B1: Start -> All Apps -> Xilinx Design Tools -> Vivado 2015.4

B2: Tạo dự án mới
File menu > New Project hoặc chọn icon “Create New Project”


B3: Next.

B4: Chọn thư mục lưu dự án, nhập tên dự án ->Next.


B5: Chọn RTL Project ->Next.


B6: Cửa sổ cho phép them các file nguồn/tạo file v o dự n (tạm thời chưa thực hiện);
chọn trường Target language: VHDL; simulator language: VHDL -> Next.


B7: Cửa sổ để thêm IP có sẵn vào dự án (dự án này chưa cần) ->Next.


B8: Cửa số Add Constraints window (thêm sau) -> Next



B9: Cửa sổ device selection window, chọn các thuộc tính trong các trường như sau:
1. Select: - Parts (default option)
2. Product Category: - General Purpose
3. Family: - Artix-7
4. Package: - cpg236
5. Speed grade: - -1
6. Temp grade: - C
7. Chọn dòng “xc7a35tcpg236-1”.
Chọn -> Next

B10: Cửa sổ tóm tắt dự án mới -> Finish để kết thúc


Cửa sổ dự án mới:



B11: Tạo các file nguồn mới: có 3 cách
Cách 1: Sử dụng công cụ Flow navigator toolbar trên phía trái của cửa sổ quản lý dự
án project manager window để tạo nguồn mới: Kích chọn biểu tượng add sources để
thêm hoặc tạo nguồn mới.

Cách 2: Sử dụng project manager, kích phải chuột Design Sources và chọn add
sources.


Cách 3: Sử dụng tổ hợp ph m tắt Alt+A
Sau khi xuất hiện cửa sổ Add Source
chọn mục add or create design sources
-> Next.



B12:Trong cửa sổ add or create design sources, chọn Create File, trong File
Type:
VHDL,File Name: Adder (tên v dụ, chọn OK -> Finish.

B12: Nhập tên biến cho các cổng I/O hoặc cancel bỏ qua bước này (khai báo sau)


Trong phần Xilinx Vivado project manager xuất hiện file nguồn mới Adder.vhd


B13: Kích đúp lên tên tệp mới Adder.vhd, nhập v o của sổ soạn thảo mã chương
trình, sau khi soạn thảo xong, mã chương trình như sau:
library ieee;
use ieee.std_logic_arith.all;
use ieee.std_logic_unsigned.all;
use ieee.std_logic_1164.all;
entity adder is
port ( a_in : in std_logic_vector (3 downto 0);
b_in : in std_logic_vector (3 downto 0);
c_out : out std_logic_vector (3 downto 0));
end adder;
architecture adder_arch of adder is
begin
process (a_in, b_in)
variable carry : std_logic_vector (4 downto 0);
variable sum :std_logic_vector (3 downto 0);
begin
carry (0) := '0';

for i in 0 to 3 loop
sum (i) := a_in(i) xor b_in(i) xor carry(i);
carry (i+1) := (a_in(i) and b_in(i)) or
(b_in(i) and carry (i)) or
(carry (i) and a_in(i));
end loop;
c_out <= sum;
end process;
end adder_arch;
2) Tổng hợp thiết kế (Synthesize design)
- Cất tệp chọn menu File/ Save ( Ctrl + S.)
- K ch chọn Run Synthesize trong cửa sổ Flow Navigator để bắt đầu quá
tr nh tổng hợp (F11 hoặc chọn nút Run Synthesis trên thanh công cụ).


B14: Khi quá trình tổng hợp kết thúc -> “Synthesize Completed" chọn Cancel, nếu
chọn OK sẽ chạy thực thi (Chưa thực hiện ở thời điểm này).


B15: Hiển thị sơ đồ mạch RTL chọn Schematic


Để hiện Netlist hoặc đồ mức gate -> mở rộng mức RTL Analysis và Elaborated
Design chọn Schematic.


3) Thực thi thiết kế (design implementation)
- Kích phải chuột cửa sổ Project Manager chọn Add Sources
- Chọn Add or create constrains, v o tên file mới File Name: pin_io
(tên ví dụ) ->OK.



-

Chọn Finish.
Trong Hierarch phần Project Manager, mở rộng mục constraints,
kích đúp tên file pin_io để mở cửa sổ soạn thảo.
- Mở file hỗ trợ soạn thảo ràng buộc, copy và paste vào cửa sổ soạn
thảo, sửa lại nội dụng của tệp pin_io.xdc có dạng sau:
Lưu ý: Nên download tệp hỗ trợ Basys3_master.xdc, khi đó trong các dự án chỉ
cần add tệp ràng buộc vào dự án, sửa lại. Trong tệp .xdc có các dòng sau:
1. “#” chỉ thị dòng chú thích ( lưu ý chú thích trong file VHDL (.vhd file) bắt
đầu với “--" (two hypens).
2. Dòng set_property PACKAGE_PIN V17 [get_ports {a_in[3]}]
a) set_property: khai báo thuộc tính
b) PACKAGE_PIN V17: Khai báo nhóm pin vật lý trên thiết bị với “V17” chỉ
ra số pin trên FPGA.
c) get_ports {a_in[3]} chỉ tới biến cổng vào muốn gắn với pin :”V17”
3. Dòng set_property IOSTANDARD LVCMOS33 [get_ports {a_in[3]}]
=> đặt chuẩn IO của cổng l LVCMOS 3.3. Volts.
Lưu ý:
- Nếu kh ng muốn chỉ ra chuẩn IO cho c c cổng thì sử dụng lệnh
sau trong file .xdc:
set_property SEVERITY {Warning} [get_drc_checks NSTD-1]
- Trong file hỗ trợ Basys3_master.xdc (THAM KHẢO CUỐI TÀI
LIỆU)có đủ các khai báo các pin của FPGA Artix-7 nhưng đều để
ở dạng dòng chú thích (#). Để sửa có 2 thao tác:


o Sử dụng pin nào bỏ dấu # ở 2 dòng lệnh PACKAGE.. và

..IOSTANDARD
o Sửa tên biến mặc định gán cho pin bằng tên biến khai báo trong
.VHL mà muốn gán cho pin đó ( trong trường hợp khai báo
biến trong .VHL trùng với tên mặc định có sẵn thì không cần
thao tác thứ 2 này)

# Pin assignment for SWs / Inputs
set_property PACKAGE_PIN V17 [get_ports {a_in[3]}]
set_property IOSTANDARD LVCMOS33 [get_ports {a_in[3]}]
set_property PACKAGE_PIN V16 [get_ports {a_in[2]}]
set_property IOSTANDARD LVCMOS33 [get_ports {a_in[2]}]
set_property PACKAGE_PIN W16 [get_ports {a_in[1]}]
set_property IOSTANDARD LVCMOS33 [get_ports {a_in[1]}]
set_property PACKAGE_PIN W17 [get_ports {a_in[0]}]
set_property IOSTANDARD LVCMOS33 [get_ports {a_in[0]}]
set_property PACKAGE_PIN W15 [get_ports {b_in[3]}]


set_property IOSTANDARD LVCMOS33 [get_ports {b_in[3]}]
set_property PACKAGE_PIN V15 [get_ports {b_in[2]}]
set_property IOSTANDARD LVCMOS33 [get_ports {b_in[2]}]
set_property PACKAGE_PIN W14 [get_ports {b_in[1]}]
set_property IOSTANDARD LVCMOS33 [get_ports {b_in[1]}]
set_property PACKAGE_PIN W13 [get_ports {b_in[0]}]
set_property IOSTANDARD LVCMOS33 [get_ports {b_in[0]}]
# Pin assignment for LEDs / Output
set_property PACKAGE_PIN U16 [get_ports {c_out[0]}]
set_property IOSTANDARD LVCMOS33 [get_ports {c_out[0]}]
set_property PACKAGE_PIN E19 [get_ports {c_out[1]}]
set_property IOSTANDARD LVCMOS33 [get_ports {c_out[1]}]

set_property PACKAGE_PIN U19 [get_ports {c_out[2]}]
set_property IOSTANDARD LVCMOS33 [get_ports {c_out[2]}]
set_property PACKAGE_PIN V19 [get_ports {c_out[3]}]
set_property IOSTANDARD LVCMOS33 [get_ports {c_out[3]}]

4) Phát sinh tệp chương trình
B16: Dưới của sổ Flow Navigator window, chọn Program and Debug và kích chọn
Bitstream Setting, xuất hiện cửa sổ Project Setting, tick mục –bin_file, chọn Apply,


-> OK

B17: Chọn mục Generate Bitstream, hoặc k ch icon Generate Bitstream trên thanh
công cụ, thao tác này sẽ phát sinh tệp đích dạng nhị phân để nạp xuống chip FPGA.


-

Nếu quá trình Generate Bitstream ho n th nh sẽ xuất hiện cửa số thông
báo trên của sổ console Bitstream Generation successfully completed


5) Nạp chương trình vào Basys3 Development Board
B18: Kết nối Basys 3 với PC sử dụng cap USB ( lƣu ý JP1 phải cấu hình JTAG)

B19: Từ Flow Navigator mở rộng mục Program and Debug, chọn Open
Hardware Manager/Open Target /Auto Connect hoặc kích Icon Auto Connect
trên thanh công cụ:



Quá trình dò tìm Basys3 xẩy ra, khi hoàn thành nó sẽ chỉ thị kết nối thành công.


×