1. Trang chủ
  2. » Luận Văn - Báo Cáo

thiết kế ADC 8 bits sử dụng ngôn ngữ lập trình VHDL và phần mềm

18 1,5K 8
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Thiết Kế ADC 8 Bits Sử Dụng Ngôn Ngữ Lập Trình VHDL Và Phần Mềm
Tác giả Nguyễn Ngọc Sơn
Trường học Trường Đại Học Bách Khoa Hà Nội
Chuyên ngành KTĐ&THCN
Thể loại Đề Tài
Năm xuất bản 2009
Thành phố Hà Nội
Định dạng
Số trang 18
Dung lượng 3,13 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

thiết kế ADC 8 bits sử dụng ngôn ngữ lập trình VHDL và phần mềm

Trang 1

Nguyễn Ngọc Sơn http://www.ebook.edu.vn KTĐ&THCN 2 – K50

LỜI MỞ ĐẦU

FPGA (Field-programmable gate array), là một chip bán dẫn chứa các thành

phần logic khả trình gọi là các khối logic và mạng kết nối khả trình Các khối logic có thể lập trình để thực hiện các hàm logic cơ bản như AND, XOR, hoặc phức tạp hơn như các bộ giải mã hay các hàm toán học đơn giản Trong hầu hết các FPGA, các khối logic thường bao gồm các phần tử nhớ, có thể là các Flip-Flop hoặc các khối memory

FPGA đã xuất hiện từ rất lâu cùng cới các dòng vi xử lý khác, song một vài năm gần đây nó được phát triển và sáng tạo như một cơn bão vào làng vi xử lý Với các bài toán mang tính phức tạp cao, cần độ chính xác cả về phần mềm và phần cứng thì FPGA

là một giải pháp thông minh Chỉ cần một chip FPGA, ta có thể thiết kế vô số các chức năng khác nhau, mỗi chức năng mang trong mình một nhiệm vụ khác nhau

Để minh chứng cho điều này, em sẽ thiết kế một bộ chuyển đổi Analog – Digital (ADC) 8-bits sử dụng chip FPGA Vì phạm vi đề tài có hạn em chỉ ở mức mô phỏng Tương lai, đề tài này có thể phát triển lên như thêm module hiển thị kết quả bằng LED

7 thanh, … Đề tài được thực hiện bởi ngôn ngữ lập trình VHDL và phần mềm mô

phỏng Xilinx – ISE

1

Nguyễn Ngọc Sơn http://www.ebook.edu.vn KTĐ&THCN 2 – K50

Trang 2

A – NGÔN NGỮ LẬP TRÌNH VHDL.

VHDL là một ngôn ngữ lập trình mô tả phần cứng, được dung phổ biến trong

thiết kế vi mạch tích hợp Ngoài VHDL, trong thiết kế mạch tích hợp người ta còn dung các ngôn ngữ khác như Verilog, E, C/C++, SystemC, CHP, Balsa, Tangram,… Song

trong việc thiết kế cho các chip FPGA, người ta thường sử dụng ngôn ngữ VHDL

Chương trình VHDL bao gồm các design units Một số design units độc lập với các design units khác

Thư viện Library là một tập hợp các design units đã được kiểm chứng Trong đó Work và STD là hai thư viện dung được cho mọi design units

library IEEE ;

package std logic 1164 is

package std logic unsigned is

package std logic arith is

B – PHẦN MỀM LẬP TRÌNH VÀ MÔ PHỎNG Xilinx – ISE.

Version ta dùng ở đây là Xilinx – ISE 10.1 Các bản version của Xilinx – ISE

đều có thể sử dụng hai loại ngôn ngữ lập trình là Vhdl và Verilog Giao diện rất dễ sử dụng:

2

Nguyễn Ngọc Sơn http://www.ebook.edu.vn KTĐ&THCN 2 – K50

Trang 3

C – THUẬT TOÁN CHƯƠNG TRÌNH.

Sơ đồ khối của bài toán như sau:

3

Nguyễn Ngọc Sơn http://www.ebook.edu.vn KTĐ&THCN 2 – K50

Trong đó: Vin là tín hiệu điện áp cần chuyển đổi (Input)

Vref là tín hiệu điện áp so sánh (Input)

Di là 8 bits số ra của bộ ADC i = 0,…,7 (Output)

Ta lấy Vref = 10 VDC làm điện áp so sánh Với ADC 8 bits sẽ có 28 = 256 trạng thái chạy từ 0000 0000 tới 1111 1111 Như vậy mỗi bước tính tương ứng là:

N = 10/(256 – 1)

Trang 4

Số 8 bits ra của bộ ADC sẽ là:

n = Vin/N = Vin(256 – 1)/10 = Vin*255/10 = Vin *25,5

Code của bài toán như sau:

- Company:

Engineer:

Create Date: 08:39:47 11/13/2009

Design Name:

Module Name: adc1 - Behavioral

Project Name:

Target Devices:

Tool versions:

Description:

Dependencies:

Revision:

Revision 0.01 - File Created

Additional Comments:

-library IEEE;

use IEEE.STD_LOGIC_1164.ALL;

use IEEE.NUMERIC_STD.ALL;

Uncomment the following library declaration if instantiating

any Xilinx primitives in this code

library UNISIM;

use UNISIM.VComponents.all;

4

Nguyễn Ngọc Sơn http://www.ebook.edu.vn KTĐ&THCN 2 – K50

entity adc1 is

port (analog_in : in integer range 0 to 15;

digital_out : out std_logic_vector(7 downto 0)

);

end adc1;

architecture Behavioral of adc1 is

constant conversion_time: time := 25 ns;

signal instantly_digitized_signal : std_logic_vector(7 downto 0);

signal delayed_digitized_signal : std_logic_vector(7 downto 0);

function ADC_8b_10v_bipolar (

analog_in: integer range 0 to +15

Trang 5

) return std_logic_vector is

constant max_abs_digital_value : integer := 256;

constant max_in_signal : integer := 10;

variable analog_signal: integer;

variable analog_abs: integer;

variable analog_limited: integer;

variable digitized_signal: integer;

variable digital_out: std_logic_vector(7 downto 0);

begin

analog_signal := integer(analog_in);

if (analog_signal < 0) then i/p = -ve

digitized_signal := integer(analog_signal * 256/10);

if (digitized_signal < -(max_abs_digital_value)) then

digitized_signal := -(max_abs_digital_value);

end if;

else i/p = +ve

digitized_signal := integer(analog_signal * 26);

if (digitized_signal > (max_abs_digital_value - 1)) then

digitized_signal := max_abs_digital_value - 1;

end if;

end if;

digital_out := std_logic_vector(to_signed(digitized_signal, digital_out'length));

return digital_out;

end ADC_8b_10v_bipolar;

begin

s0: instantly_digitized_signal <=

std_logic_vector (ADC_8b_10v_bipolar (analog_in));

5

Nguyễn Ngọc Sơn http://www.ebook.edu.vn KTĐ&THCN 2 – K50

s1: delayed_digitized_signal <=

instantly_digitized_signal after conversion_time;

s2: digital_out <= delayed_digitized_signal;

end Behavioral;

D – CÁC BƯỚC THỰC HIỆN.

Vào Xilinx – ISE từ màn hình Desktop:

Trang 6

Tạo New Project:

6

Nguyễn Ngọc Sơn http://www.ebook.edu.vn KTĐ&THCN 2 – K50

Nhập tên sau đó chọn ngôn ngữ lập trình là VHDL:

Trang 7

Nguyễn Ngọc Sơn http://www.ebook.edu.vn KTĐ&THCN 2 – K50

Next:

Next:

Trang 8

Nguyễn Ngọc Sơn http://www.ebook.edu.vn KTĐ&THCN 2 – K50

Next:

Finish:

Trang 9

Nguyễn Ngọc Sơn http://www.ebook.edu.vn KTĐ&THCN 2 – K50

Tạo VHDL Module:

Trang 10

Nguyễn Ngọc Sơn http://www.ebook.edu.vn KTĐ&THCN 2 – K50

Đánh tên, mở rồi nhập code ta được:

Tạo VHDL Test Bench:

11

Nguyễn Ngọc

Trang 11

http://www.ebook.edu.vn KTĐ&THCN 2 – K50

Nhập tên rồi Next ta được:

12

Nguyễn Ngọc Sơn

Trang 12

KTĐ&THCN 2 – K50

Kiểm tra lỗi sai:

13

Nguyễn Ngọc Sơn http://www.ebook.edu.vn KTĐ&THCN 2 – K50

Trang 13

Kiểm tra phần cứng:

View RTL Schematic:

14

Nguyễn Ngọc Sơn http://www.ebook.edu.vn KTĐ&THCN 2 – K50

View Technology Schematic:

Trang 14

Chọn Behavioral Simulation từ Sourses Window:

15

Nguyễn Ngọc Sơn http://www.ebook.edu.vn KTĐ&THCN 2 – K50

Vào File tạo bởi Test Bench WaneForm:

Trang 15

Nháy đúp vào Simulate Behavioral Model:

16

Nguyễn Ngọc Sơn http://www.ebook.edu.vn KTĐ&THCN 2 – K50

Chọn Yes ra màn hình hiển thị giá trị mô phỏng với Vin = 0 V, Di = 0000 0000

Trang 16

Mô phỏng với Vin = 14 VDC ta được kết quả: Di = 0000 1110

17

Nguyễn Ngọc Sơn http://www.ebook.edu.vn

18

Trang 17

KTĐ&THCN 2 – K50

Nguyễn Ngọc Sơn http://www.ebook.edu.vn KTĐ&THCN 2 – K50

E – KẾT LUẬN.

Qua đề tài thiết kế ADC 8 bits sử dụng ngôn ngữ lập trình VHDL và phần mềm

mô phỏng Xilinx ISE ta thấy rõ được kết quả thật chính xác và nhanh chóng

Điều này phù hợp với nhận xét lúc đầu rằng FPGA ngày càng phát triển, ngày càng trở nên thuận tiện trong việc thiết kế mạch số với các ưu điểm vượt trội của nó

Em xin chân thành cảm ơn thầy Lê Hải Sâm đã tận tình giúp đỡ em trong kỳ học vừa qua, để em có được những kiến thức quý báu về FPGA, về VHDL Một lần nữa em xin chân thành cảm ơn thầy, chúc thầy luôn mạnh khoẻ, công tác tốt!

Trang 18

Trường đại học Bách khoa Hà Nội 13/11/2009

Ngày đăng: 23/04/2013, 14:48

HÌNH ẢNH LIÊN QUAN

Sơ đồ khối của bài toán như sau: - thiết kế ADC 8 bits sử dụng ngôn ngữ lập trình VHDL và phần mềm
Sơ đồ kh ối của bài toán như sau: (Trang 3)

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w