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

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

Đ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

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

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 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 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 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 phần mềm mô phỏng Xilinx – ISE. 1 Trường đại học Bách khoa Hà Nội 13/11/2009 Nguyễn Ngọc Sơn http://www.ebook.edu.vn KTĐ&THCN 2 – K50 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 STD là hai thư viện dung được cho mọi design units. library IEEE ; packa ge logic 1164 is packa ge logic unsig ned is packa ge 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ìnhVhdl Verilog. Giao diện rất dễ sử dụng: 2 T r ư ờ n g đ ạ i h ọ c B á c h k h o a H à N ộ i 13/11/2009 Nguyễn Ngọc Sơn http://www.ebook.edu.vn KTĐ&THCN 2 – K50 C – THUẬT TOÁN CHƯƠNG TRÌNH. Sơ đồ khối của bài toán như sau: 3 Trư ờng đ ạ i h ọ c B á c h k h o a H à N ộ i 13/11/2009 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) V ref là tí n hi ệ u đi ệ n á p s o sá n h (I n p ut ) D i là 8 bi ts s ố ra c ủ a b ộ A D C i = 0,…,7 (Outp ut) 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) Số 8 bits ra của bộ ADC sẽ là: n = Vin/N = Vin(25 6 – 1)/10 = Vin*25 5/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.A LL; ---- Uncomment the following library declaration if instantiating ---- any Xilinx primitives in this code. --library UNISIM; --use UNISIM.VComponents.al l; 4 T r ư ờ n g đ ạ i h ọ c B á c h k h o a H à N ộ i 13/11/2009 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_v ector(7 downto 0) ); end adc1; architecture Behavioral of adc1 is constant conversion_time: time := 25 ns; signal instantly_digitiz ed_signal : std_logic_vecto r(7 downto 0); signal delayed_digitize d_signal : std_logic_vecto r(7 downto 0); function ADC_8b_10v_b ipolar ( analog_in: integer range 0 to +15 ) return std_logic_vecto r is constant max_abs_digit al_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_val ue)) then digitized_signal := - (max_abs_digital_v alue); end if; else -- i/p = +ve digitized_signal := integer(analog_signal * 26); if (digitized_signal > (max_abs_digital_val ue - 1)) then digitized_signal := max_abs_digital_va lue - 1; end if; end if; digital_out := std_logic_vector(to_si gned(digitized_signal, digital_out'length)); return digital_out; end ADC_8b_10v_bipolar; begin s0: instantly_digitized_signal <= std_logic_vector (ADC_8b_10v_bipo lar (analog_in)); 5 T r ư ờ n g đ ạ i h ọ c B á c h k h o a H à N ộ i 13/11/2009 [...]... được kết quả: Di = 0000 1110 17 T r ư ờ n g đ ạ i h ọ c B á c h k h o a H à N ộ i 13/11/2009 Nguyễn Ngọc Sơn http://www.ebook.edu.vn 18 KTĐ&THCN 2 – K50 Trư 13/11/2009 ờng đại học Bác h kho a Hà Nội 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 phần mềm mô phỏng Xilinx ISE ta thấy rõ được kết quả thật chính xác và. .. Behavioral; D – CÁC BƯỚC THỰC HIỆN Vào Xilinx – ISE từ màn hình Desktop: Tạo New Project: 6 T r ư ờ n g đ ạ i h ọ c B á c h k h o a H à N ộ i 13/11/2009 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: 7 Trư ờng đ h B á c h k h o a H à N ộ i 13/11/2009 Nguyễn Ngọc Sơn http://www.ebook.edu.vn KTĐ&THCN 2 – K50 Next: Next: 8 Trư ờng đại học Bác h kho a... Kiểm tra phần cứng: View RTL Schematic : 1 Trư ờng đại h B h k h o a H à N ộ i 13/11/2009 Nguyễn Ngọc Sơn http://www.ebook.edu.vn KTĐ&THCN 2 – K50 View Technolog y Schematic : Chọn Behaviora l Simulatio n từ Sourses Window: 15 T r ư ờ n g đ ạ i h ọ c B á c h k h o a H à N ộ i 13/11/2009 Nguyễn Ngọc Sơn http://www.ebook.edu.vn KTĐ&THCN 2 – K50 Vào File tạo bởi Test Bench WaneFor m: Nháy đúp vào Simulate... Đ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 ... K50 Next: Finish: 9 Trư ờng đại học Bác h kho a H N 13/11/2009 Nguyễn Ngọc Sơn http://www.ebook.edu.vn KTĐ&THCN 2 – K50 Tạo VHDL Module: 1 Trư ờng đại học Bác h k a H N 13/11/2009 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: 1 Trư ờ đ ạ i h ọ c B á c h k h o a H à N ộ i 13/11/2009 Nguyễn Ngọc Sơn http://www.ebook.edu.vn KTĐ&THCN 2

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

Từ khóa liên quan

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan