fpga_ thang.doc

30
Thiết kế bộ đếm 4bit, 2 chiều có lệnh điều khiển dừng MỤC LỤC trang Mục lục………………………………………………………………. 1 I.Yêu cầu đề tài……………………………………………………….. 2 II. Cụ thể hóa đề tài…………………………………………………… 2 III. Thực hiện bài toán……………………………………………….. 3 1. Creating a new project……………………………………… 3 2. Mô tả Entity………………………………………………… 4 3. tả Architecture…………………………………………. 5 4. Kiểm tra lỗi cú pháp………………………………………… 7 5. Thực hiện thiết kế (Implement) …………………………….. 7 IV. Mô phỏng bài toán……………………………………………….. 11 1. phỏng dùng Test Bench Waveform…………………….. 11 2. phỏng dùng VHDL Test Bench………………………… 16 V. Kết luận…………………………………………………………… 22 VI. Tài liệu tham khảo………………………………………………... 23 Võ Mạnh Thắng- Lớp KTĐ& THCN1- K49 1

Upload: hoai-pham-hong

Post on 08-Aug-2015

39 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: FPGA_ Thang.doc

Thiết kế bộ đếm 4bit, 2 chiều có lệnh điều khiển dừng

MỤC LỤC trangMục lục……………………………………………………………….

1

I.Yêu cầu đề tài………………………………………………………..

2

II. Cụ thể hóa đề tài……………………………………………………

2

III. Thực hiện bài toán………………………………………………..

3

1. Creating a new project………………………………………

3

2. Mô tả Entity…………………………………………………

4

3. Mô tả Architecture………………………………………….

5

4. Kiểm tra lỗi cú pháp…………………………………………

7

5. Thực hiện thiết kế (Implement)……………………………..

7

IV. Mô phỏng bài toán………………………………………………..

11

1. Mô phỏng dùng Test Bench Waveform……………………..

11

2. Mô phỏng dùng VHDL Test Bench…………………………

16

V. Kết luận……………………………………………………………

22

VI. Tài liệu tham khảo………………………………………………...

23

Võ Mạnh Thắng- Lớp KTĐ& THCN1- K49 1

Page 2: FPGA_ Thang.doc

Thiết kế bộ đếm 4bit, 2 chiều có lệnh điều khiển dừng

I. YÊU CẦU ĐỀ TÀI:

- Tìm hiểu công nghệ CPLD.

- Tìm hiểu dòng XC9500 CPLDs của hang Xilinx.

- Sử dụng công cụ thiết kế và mô phỏng CPLD, cụ thể là phần

mềm ISE của hãng Xilinx.

- Tìm hiểu ngôn ngữ mô tả phần cứng (VHDL), ứng dụng vào

bài toán thiết kế đơn giản.

II. CỤ THỂ HOÁ ĐỀ TÀI

Từ yêu cầu bài toán đặt ra em đã đi vào thực hiện một bài toán cụ thể

đó là: “Thiết kế bộ đếm” với các đặc tính kỹ thuật như sau:

- Bộ đếm 4bit, 2 chiều có lệnh điều khiển dừng.

- Thiết bị đích dùng XC9500CPLDs mà cụ thể là loại XC9572 để thiết

kế.

- CLK: Xung đồng hồ

- LEFT: Đầu vào cho phép dịch trái (đếm lên)- tích cực ở mức thấp.

- RIGHT: Đầu vào cho phép dịch phải (đếm lùi)- tích cực ở mức thấp.

- STOP: Đầu vào cho phép dừng sự đếm- tích cực ở mức thấp.

- Q<3>- Q<0>: Những đầu ra của bộ đếm.

Võ Mạnh Thắng- Lớp KTĐ& THCN1- K49 2

Page 3: FPGA_ Thang.doc

Thiết kế bộ đếm 4bit, 2 chiều có lệnh điều khiển dừng

Trong quá trình thực hiện em đã làm được một số công việc cụ thể như

sau:

1. Cài đặt phần mềm ISE ver 6.3i của hãng Xilinx và phần mềm mô

phỏng ModelSim ver6.2.

2. Thiết kế bài toán trên cơ sở ngôn ngữ VHDL sử dụng ISE (HDL-

Base design)

3. Thực hiện mô phỏng bài toán dùng Test Bench Waveform và

VHDL Test Bench.

III. THỰC HIỆN BÀI TOÁN:

1. Creating a new project:

Tạo một Project trong ISE có tên là: “bodem” bằng cách:

a. Khởi động Project Navigator

b. Chọn File/ New Project

- Project Name: bodem

- Project Location: C/bodem

c. Chọn Next ta được màn hình Wizard sau:

Trong màn hình Wizard ta chọn các thông số như sau:

Device Family: XC9500 CPLDs

Võ Mạnh Thắng- Lớp KTĐ& THCN1- K49 3

Page 4: FPGA_ Thang.doc

Thiết kế bộ đếm 4bit, 2 chiều có lệnh điều khiển dừng

Device: XC9572

Package: TQ100

Speed Grade: -7

Top- Level Module Type: HDL

Synthesis Tool: XST (VHDL/ Verilog)

Simulator: Modelsim

Generater Simulator Language: VHDL

d. Chọn Next tiếp theo cho đến Finish

2. Mô tả Entity:

- Tạo một VHDL module trong Project có tên “bodem” bằng cách:

a. Chọn Project/ New Source

b. Chọn VHDL module

c. Type: bodem

d. Chọn Next, màn hình Wizard xuất hiện, khai báo các tín hiệu

cổng cụ thể như hình sau:

Chọn Next ta được Entity tạo bởi Wizard như sau:

library IEEE;

use IEEE.STD_LOGIC_1164.ALL;-- kieu dinh nghia std_logic

use IEEE.STD_LOGIC_ARITH.ALL;

use IEEE.STD_LOGIC_UNSIGNED.ALL;

Võ Mạnh Thắng- Lớp KTĐ& THCN1- K49 4

Page 5: FPGA_ Thang.doc

Thiết kế bộ đếm 4bit, 2 chiều có lệnh điều khiển dừng

-- Uncomment the following lines to use the declarations that are

-- provided for instantiating Xilinx primitive components.

--library UNISIM;

--use UNISIM.VComponents.all;

entity Bodem is

Port ( CLK : in std_logic;

LEFT : in std_logic; -- tich cuc thap-- bat trai#3

RIGHT : in std_logic; -- tich cuc thap-- bat phai#0

STOP : in std_logic;

Q : inout std_logic_vector(3 downto 0));

end Bodem;

architecture Behavioral of Bodem is

begin

end Behavioral;

3. Mô tả Architecture:

Mô tả Architecture cho ta cấu trúc và nguyên tắc làm việc của bộ đếm,

cụ thể như sau: Bộ đếm chỉ làm việc khi có xung đồng hồ (xung CLK), khi có

xung LEFT hay RIGHT (tích cực ở mức thấp) sẽ bắt đầu thực hiện việc đếm

lên hay đếm xuống (dịch trái hay dịch phải). Khi có xung STOP (tích cực ở

mức thấp) bộ đếm sẽ tạm ngừng việc đếm và chỉ tiếp tục khi có xung LEFT

hay RIGHT tác động.

Việc đếm lên được thực hiện qua các bước:

- Kiểm tra sườn lên của xung CLK

- Kiểm tra tín hiệu LEFT

- Nếu có tín hiệu LEFT ở mức thấp thì bắt đầu thực hiện việc

đếm lên, đến khi có xung STOP (ở mức thấp) hoặc tín hiệu

LEFT lên mức cao thì dừng việc đếm lên

Việc đếm xuống thì thực hiện qua các bước:

- Kiểm tra sườn lên của xung CLK

Võ Mạnh Thắng- Lớp KTĐ& THCN1- K49 5

Page 6: FPGA_ Thang.doc

Thiết kế bộ đếm 4bit, 2 chiều có lệnh điều khiển dừng

- Kiểm tra tín hiệu RIGHT

- Nếu có tín hiệu RIGHT ở mức thấp thì bắt đầu thực hiện việc

đếm xuống, đến khi có xung (ở mức thấp) hoặc tín hiệu

RIGHT ở mức cao thì dừng việc đếm lên

Trong quá trình thực hiện việc đếm thì việc đếm lên hay đếm xuống có

thể liên tục đổi vai trò cho nhau. Ví dụ: khi đang đếm lên thì xung LEFT đang

ở mức thấp, RIGHT ở mức cao. Nếu thay đổi LEFT lên cao và RIGHT xuống

thấp thì quá trình sẽ thực hiện việc đếm xuống.

Theo nguyên lý thực hiện như trên ta có đoạn code VHDL như sau:

architecture Bodem_arch of Bodem is

signal DIR: STD_LOGIC: = '0'; -- Left=1, Right=0

signal RUN: STD_LOGIC: = '0';

begin

process (CLK)

begin

if (CLK'event and CLK='1') then -- CLK muc cao

-- DIR register:

if (RIGHT='0') then

DIR <= '0';

elsif (LEFT='0') then

DIR <= '1';

end if;

-- RUN register:

if (STOP='0') then

RUN <= '0';

elsif (LEFT='0' or RIGHT='0') then

RUN <= '1';

end if;

-- Bo phan bo dem:

Võ Mạnh Thắng- Lớp KTĐ& THCN1- K49 6

Page 7: FPGA_ Thang.doc

Thiết kế bộ đếm 4bit, 2 chiều có lệnh điều khiển dừng

if (RUN='1') then

if (DIR='1') then

Q(3 downto 1) <= Q(2 downto 0); -- thay doi tu bit thap (tu trai)

Q(0) <= not Q(3); -- Luon chuyen dao tu MSB sang LSB

else

Q(2 downto 0) <= Q(3 downto 1); -- Thay doi tu bit cao (tuphai)

Q(3) <= not Q(0); -- Luon chuyen dao tu LSB sang MSB

end if;

end if;

end if;

end process;

end Bodem_arch;

4. Kiểm tra lỗi cú pháp:

Sau khi đã soạn thảo xong chương trình vào cửa sổ soạn thảo, thực

hiện save lại. Ta thực hiện việc kiểm tra lỗi cú pháp như sau:

- Tại cửa sổ source in Project, chon entity “Bodem”

- Tại cửa sổ Process for source , chọn Synthesize- XST/ Check

Syntax

- Cú pháp (Syntax) được kiểm tra và không có lỗi với dấu

“check” màu xanh hiện lên, có lỗ sẽ hiện dấu “check” màu đỏ

Võ Mạnh Thắng- Lớp KTĐ& THCN1- K49 7

Page 8: FPGA_ Thang.doc

Thiết kế bộ đếm 4bit, 2 chiều có lệnh điều khiển dừng

Theo như hình trên có thể thấy chương trình mô tả phần cứng không bị

lỗi và có thể tiến hành mô phỏng được.

5. Thực hiện thiết kế (Implement):

Trong phần này chương trình sẽ thực hiện định vị các thành phần và kết

nối tạo thành thiết kế. Trước khi làm việc đó ta phải lựa chọn các tuỳ chọn.

Trong cửa sổ Source in Project chon module “bodem.vhd”. Trong cửa sổ

Processes for Source chọn Implement Design, nhấn phải chuột chọn

Properties để đặt thông số của quá trình. Cửa sổ Process Properties xuất hiện:

Các lựa chọn được giới hạn tương ứng với họ thiết bị được lựa chọn, ở

đây các lựa chọn tương ứng với các thiết bị CPLDs XC9572. ISE đã lựa chọn

mặc định các thông số théo các đặc tính của thiết bị, đặc tính của chương

trình... Ví dụ Implement Template cho phép ta lựa chọn phương pháp tối ưu,

mặc định là tối ưu cân bằng, ngoài ra còn có các phương pháp tối ưu khác cho

ta lựa chọn : tối ưu tốc độ, tối ưu theo độ tích hợp…

Sau khi lựa chọn xong thực hiện định vị và kết nối thiết kế. Để làm việc

này chạy mục Implement Template (nhấn chuột phải chọn Run), có thể chạy

cả mục hay chạy từng mục con riêng lẻ. Kết thúc quá trình thực hiện, tất cả

các mục của Implement Template được đánh dấu “check” xanh, nếu có lỗi sẽ

là dấu “check” màu đỏ:

Võ Mạnh Thắng- Lớp KTĐ& THCN1- K49 8

Page 9: FPGA_ Thang.doc

Thiết kế bộ đếm 4bit, 2 chiều có lệnh điều khiển dừng

Kết thúc quá trình thực hiện cửa sổ Fitter Report xuất hiện tổng kết quá

trình thiết kế, được tạo dưới dạng file HTML, bảng tổng kết này cho biết:

thông số thiết bị, sử dụng tài nguyên thiết bị, chức năng của các khối riêng

biệt, các phương trình, sơ đồ chân, và việc lựa chọn trình biên dịch…

Ngoài ra sau khi thực hiện thiết kế xong chương trình còn tạo ra một

loạt các bảng thông báo khác như Timing Report:

Võ Mạnh Thắng- Lớp KTĐ& THCN1- K49 9

Page 10: FPGA_ Thang.doc

Thiết kế bộ đếm 4bit, 2 chiều có lệnh điều khiển dừng

Xem dạng RTL của “bodem” bằng cách chọn View RTL Schematic

trong cửa sổ Process trong cửa sổ Processes for Source, ta được kết quả sau:

Sơ đồ logic:

Võ Mạnh Thắng- Lớp KTĐ& THCN1- K49 10

Page 11: FPGA_ Thang.doc

Thiết kế bộ đếm 4bit, 2 chiều có lệnh điều khiển dừng

Sơ đồ mở rộng:

Các thông số chi tiết có thể xem trong cửa sổ Instance Contents:

Võ Mạnh Thắng- Lớp KTĐ& THCN1- K49 11

Page 12: FPGA_ Thang.doc

Thiết kế bộ đếm 4bit, 2 chiều có lệnh điều khiển dừng

IV. MÔ PHỎNG BÀI TOÁN:

Trình mô phỏng được sử dụng trong thiết kế này là MODEL SIM. Từ

thiết kế vừa tạo, để có thể mô phỏng trên phần mềm MODEL SIM ta phải tạo

ra một file thử dạng sóng cho các đầu vào (Test Bench Waveform). Cũng có

thể tạo ra các file thử bằng ngôn ngữ mô tả phần cứng như VHDL Test Bench

(đối với các thiết kế sử dụng ngôn ngữ VHDL) hoặc Verilog Test Fixture (đối

với các thiết kế sử dụng ngôn ngữ Verilog).

Sau đây em sẽ thực hiện cả hai phương pháp dùng để mô phỏng trong

thiết kế trên.

1. Mô phỏng dùng Test Bench Waveform:

Từ form chính của chương trình, tạo một file nguồn mới (chọn New

Source). Trong cửa sổ New Source chọn Test Bench Wavefrom, viết tên của

file mới (ở đây là bodem_tbw).

Võ Mạnh Thắng- Lớp KTĐ& THCN1- K49 12

Page 13: FPGA_ Thang.doc

Thiết kế bộ đếm 4bit, 2 chiều có lệnh điều khiển dừng

Kích Next sau khi đã lựa chọn xong, một cửa sổ mới (Select) sẽ xuất

hiện, trong cửa sổ này ta sẽ chọn các module mô phỏng. Trong thiết kế này

chỉ có một module mô phỏng nhưng đối với các thiết kế phức tạp hơn phải sử

dụng nhiều module. Từ cửa sổ Select sau khi đã lựa chọn xong, kích Next,

một bảng thông báo sẽ xuất hiện:

Võ Mạnh Thắng- Lớp KTĐ& THCN1- K49 13

Page 14: FPGA_ Thang.doc

Thiết kế bộ đếm 4bit, 2 chiều có lệnh điều khiển dừng

Trong bảng thông báo này kích Finish. Một bảng định thời giá trị ban

đầu xuất hiện:

Trong “Initialize Timing” ta nhập các giá trị ban đầu tần số xung clock

của hệ thống, đưa ra các thủ tục, và đầu ra trễ. Ta có thể thay đổi giá trị ban

đầu này, sau khi đã đáp ứng giá trị ban đầu kích OK. Trong form chính của

ISE (Project Navigator) xuất hiện một cửa sổ mới của Test Bench Waveform:

Võ Mạnh Thắng- Lớp KTĐ& THCN1- K49 14

Page 15: FPGA_ Thang.doc

Thiết kế bộ đếm 4bit, 2 chiều có lệnh điều khiển dừng

Từ cửa sổ của Test bench Waveform ta thiết lập sự mô phỏng tuỳ theo

ý đồ kiểm tra. Các ô màu xanh giúp thiết lập các tín hiệu vào, các ô màu vàng

là kết quả ra. Việc thiết lập các tín hiệu vào được thực hiện bằng cách kích

lên các ô màu xanh, nó sẽ tự động đưa một khoảng thời gian tín hiệu ở mức

cao hay thấp. Việc thiết lập tín hiệu ra thực hiện bằng cách kích lên ô màu

vàng. Một Pattern (khuôn) xuất hiện, kích vào Pattern này cửa sổ Pattern

Wizard sẽ xuất hiện, ta có thể thiết lập các giá trị tín hiệu ra, như: giá trị ban

đầu, giá trị cuối, chu kỳ ...

Đối với trường hợp bài toán, giả sử muốn kiểm tra tín hiệu ra của bộ

đếm, khi muốn thiết lập tín hiệu vào như sau: ở xung nhịp thứ hai bắt đầu có

tín hiệu LEFT (dịch trái- ở mức thấp), ở xung nhịp thứ 6 không còn tín hiệu

LEFT (mức cao), ở xung nhịp thứ 7 lại có tín hiệu LEFT. ở xung nhịp thứ 10

bắt đầu có tín hiệu RIGHT, còn tín hiệu STOP xuất hiện ở các xung nhịp thứ

5 và 9. Ta thu được:

Võ Mạnh Thắng- Lớp KTĐ& THCN1- K49 15

Page 16: FPGA_ Thang.doc

Thiết kế bộ đếm 4bit, 2 chiều có lệnh điều khiển dừng

Kết thúc quá trình thiết lập trong cửa sổ Source in Project xuất hiện

một file mới (bodem_tbw.tbw), kích vào file này, ở cửa sổ Processes for

Source bên dưới sẽ đưa ra các dạng mô phỏng của MODEL SIM (đối với các

thiết kế của CPLD gồm 2 dạng mô phỏng chính là Simulate Behavioral

VHDL Model và Simulate Port-Fit Model ). Ở đây em thực hiện dạng mô

phỏng theo hành vi (Simulate Behavioral VHDL Model). Trước hết lựa chọn

đặc tính hiển thị, kích chuột phải vào Simulate Behavioral VHDL Model,

chọn Properties, cửa sổ Process Properties xuất hiện cho phép ta lựa chọn đặc

tính mô phỏng và đặc tính hiển thị.

Võ Mạnh Thắng- Lớp KTĐ& THCN1- K49 16

Page 17: FPGA_ Thang.doc

Thiết kế bộ đếm 4bit, 2 chiều có lệnh điều khiển dừng

Sau khi lựa chọn xong kích chuột phải vào Simulate Behavioral VHDL

Model chọn Run phần mềm MODEL SIM được khởi động. Phần mềm sẽ

load thiết kế, sau đó các cửa sổ được chọn hiển thị sẽ hiển thị trên màn hình.

ở đây, chỉ chú ý đến cửa sổ Wave window là cửa sổ hiển thị dạng sóng tín

hiệu mà ta cần kiểm tra:

Từ cửa sổ Wave window có thể thấy rằng bộ đếm đã thực hiện đúng

việc đếm theo xác lập đầu vào kiểm tra ở trên.

2. Mô phỏng dùng VHDL Test Bench:

Đây là phương pháp mô phỏng dùng ngôn ngữ VHDL để kiểm tra thiết

kế vừa tạo. Ở đây ta phải tạo ra một file mới định dạng kiểu VHDL Test

Bench (boden_tb.tb).

Từ form chính của chương trình, tạo một file nguồn mới (chọn New

Source). Trong cửa sổ New Source chọn VHDL Test Bench, viết tên của file

mới (bodem_tb). Kích Next sau khi đã lựa chọn xong. Cũng như ở phần tạo

dạng file Test Bench Waveform ở đây cũng có phần lựa chọn module mô

phỏng:

Võ Mạnh Thắng- Lớp KTĐ& THCN1- K49 17

Page 18: FPGA_ Thang.doc

Thiết kế bộ đếm 4bit, 2 chiều có lệnh điều khiển dừng

Trước khi kết thúc quá trình tạo file nguồn mới sẽ có một bảng thông

báo về file nguồn được tạo. Kích Finish để hoàn tất quá trình tạo file nguồn

mới. Lúc này trên cửa sổ Source in Project đã có một file nguồn mới có tên

bodem_tb.vhd. Cũng trên cửa sổ soạn thảo đã xuất hiện những khai báo bước

đầu về file VHDL vừa tạo:

LIBRARY ieee;

USE ieee.std_logic_1164.ALL;

USE ieee.numeric_std.ALL;

ENTITY bodem_bodem_tb_vhd_tb IS

END bodem_bodem_tb_vhd_tb;

ARCHITECTURE behavior OF bodem_bodem_tb_vhd_tb IS

COMPONENT bodem

PORT(

CLK : IN std_logic;

LEFT : IN std_logic;

RIGHT : IN std_logic;

STOP : IN std_logic;

Q : INOUT std_logic_vector(3 downto 0)

Võ Mạnh Thắng- Lớp KTĐ& THCN1- K49

18

Page 19: FPGA_ Thang.doc

Thiết kế bộ đếm 4bit, 2 chiều có lệnh điều khiển dừng

);

END COMPONENT;

SIGNAL CLK : std_logic;

SIGNAL LEFT : std_logic;

SIGNAL RIGHT : std_logic;

SIGNAL STOP : std_logic;

SIGNAL Q : std_logic_vector(3 downto 0);

BEGIN

uut: bodem PORT MAP(

CLK => CLK,

LEFT => LEFT,

RIGHT => RIGHT,

STOP => STOP,

Q => Q

);

-- *** Test Bench - User Defined Section ***

tb : PROCESS

BEGIN

wait; -- will wait forever

END PROCESS;

-- *** End Test Bench - User Defined Section ***

END;

Võ Mạnh Thắng- Lớp KTĐ& THCN1- K49 19

Page 20: FPGA_ Thang.doc

Thiết kế bộ đếm 4bit, 2 chiều có lệnh điều khiển dừng

Trong cửa sổ soạn thảo, ta tiến hành viết chương trình mô phỏng.

Trong thiết kế sẽ thực hiện kiểm tra sự làm việc của bộ đếm khi tín hiệu vào

được thiết lập như sau: sau 100ns bắt đầu có tín hiệu CLK, chu kỳ xung CLK

là 20ns, sau 110ns có xung LEFT (tức là sau 10ns kể từ khi có xung CLK),

sau 430ns (hay 330ns kể từ khi có xung CLK) có xung RIGHT, sau 330ns có

lệnh STOP và xung LEFT lại xuất hiện sau 650ns.

Với việc thiết lập như trên, thực hiện soạn thảo nội dung mô phỏng

theo ngôn ngữ VHDL như sau:

BEGIN

uut: bodem PORT MAP(

LEFT => LEFT,

RIGHT => RIGHT,

STOP => STOP,

CLK => CLK,

Q => Q

);

PROCESS

BEGIN

-- --------------------

CLK <= transport '0';

LEFT <= transport '1';

RIGHT <= transport '1';

STOP <= transport '1';

-- --------------------

WAIT FOR 90 ns;

CLK <= transport '0';

-- --------------------

WAIT FOR 10 ns;

CLK <= transport '1';

Võ Mạnh Thắng- Lớp KTĐ& THCN1- K49 20

Page 21: FPGA_ Thang.doc

Thiết kế bộ đếm 4bit, 2 chiều có lệnh điều khiển dừng

-- --------------------

WAIT FOR 10 ns;

CLK <= transport '0';

LEFT <= transport '0';

-- --------------------

WAIT FOR 10 ns;

CLK <= transport '1';

-- --------------------

WAIT FOR 10 ns;

CLK <= transport '0';

LEFT <= transport '1';

-- --------------------

WAIT FOR 10 ns;

CLK <= transport '1';

-- --------------------

WAIT FOR 10 ns;

CLK <= transport '0';

. .. v.v.. .

WAIT FOR 10 ns;

CLK <= transport '0';

STOP <= transport '0';

-- --------------------

WAIT FOR 10 ns;

CLK <= transport '1';

-- --------------------

WAIT FOR 10 ns;

CLK <= transport '0';

STOP <= transport '1';

-- --------------------

Võ Mạnh Thắng- Lớp KTĐ& THCN1- K49 21

Page 22: FPGA_ Thang.doc

Thiết kế bộ đếm 4bit, 2 chiều có lệnh điều khiển dừng

WAIT FOR 10 ns;

CLK <= transport '1';

. .. v.v.. .

WAIT FOR 10 ns;

CLK <= transport '0';

RIGHT <= transport '0';

-- --------------------

WAIT FOR 10 ns;

CLK <= transport '1';

-- --------------------

WAIT FOR 10 ns;

CLK <= transport '0';

RIGHT <= transport '1';

-- --------------------

WAIT FOR 10 ns;

CLK <= transport '1';

. .. v.v.. .

WAIT FOR 10 ns;

CLK <= transport '0';

LEFT <= transport '0';

-- --------------------

WAIT FOR 10 ns;

CLK <= transport '1';

-- --------------------

WAIT FOR 10 ns;

CLK <= transport '0';

LEFT <= transport '1';

-- --------------------

WAIT FOR 10 ns;

Võ Mạnh Thắng- Lớp KTĐ& THCN1- K49 22

Page 23: FPGA_ Thang.doc

Thiết kế bộ đếm 4bit, 2 chiều có lệnh điều khiển dừng

CLK <= transport '1';

. .. v.v.. .

Ở đây, em chỉ đưa ra một đoạn nhỏ soạn thảo nội dung trên.

Sau khi soạn thảo xong nội dung ta save lại sau đó tiến hành chạy mô

phỏng trên MODEL SIM. Việc chạy mô phỏng cũng thực hiện tương tự như

đã làm với Test Bench Waveform. Hình dưới là dạng tín hiệu mô phỏng trên

MODEL SIM với VHDL Test Bench của thiết lập trên.

Từ cửa sổ Wave window có thể thấy rằng bộ đếm đã thực hiện đúng

việc đếm theo xác lập đầu vào kiểm tra ở trên.

V.KẾT LUẬN:

a. Đề tài hoàn thành đáp ứng những yêu cầu đề ra.

b. Hạn chế: Do thời gian tiếp xúc với môn học ngắn nên đề tài mới

chỉ dừng lại ở những hiểu biết cơ bản nhất về CPLD cũng như

các kĩ năng thiết kế đơn giản.

Võ Mạnh Thắng- Lớp KTĐ& THCN1- K49 23

Page 24: FPGA_ Thang.doc

Thiết kế bộ đếm 4bit, 2 chiều có lệnh điều khiển dừng

c. Hướng nghiên cứu: Do sự phát triển của CPLD/FPGA trong

tương lai nên việc tìm hiểu sâu về công nghệ CPLD/FPGA và

ứng dụng vào các thiết kế thực tế là một hướng nghiên cứu tốt.

VI TÀI LIỆU THAM KHẢO:

- Trong đề tài đã sử dụng 1 số tài liệu tham khảo như sau:

- Bài giảng trên lớp của thầy giáo Lê Hảo Sâm.

- “ISE 6 In-Depth Tutorial” của hãng Xilinx.

- “A CPLD VHDL Introduction” của hãng Xilinx.

- Application Notes của trang Xilinx.com

(http://www.xilinx.com/xlnx/xweb ).

Võ Mạnh Thắng- Lớp KTĐ& THCN1- K49 24