1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Tìm hiểu ngôn ngữ VHDL viết chuơng trình thiết kế mạch công 8 bit song song BCD cho 2 toán hạng

103 2 0

Đ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

Nội dung

TRƯờNG ĐạI HọC Kỹ THUậT THÀNH PHố Hồ CHÍ MINH KHOA CÔNG NGHệ THÔNG TIN  LUÂN VĂN TÔT NGHIệP NộI DUNG Đề TÀI : TÌM HIểU NGƠN NGữ VHDL VIếT CHUƠNG TRÌNH THIếT Kế MạCH CộNG BIT SONG SONG BCD CHO TOÁN HạNG GIÁO VIÊN HƯớNG DẫN : THầY NGUYễN QUốC TUấN SINH VIÊN THựC HIệN : ĐặNG MINH TUấN  Năm 1999  LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com LờI GIớI THIệU Máy tính có vị trí quan trọng sống,phép cộng (adding) phép tốn thường gặp cơng việc ngày toán kỹ thuật, kinh tế nhằm để tính tốn cách nhanh chóng Việc hiểu biết thơng kết cấu hệ thống máy tính quan trọng,nghĩa nắm vững kết cấu mặt phần cứng, tổ chức thiết kế mạch (các mạch điện bên hệ thống máy) Điều dẫn đến u cầu: cần có ngơn ngữ lập trình có hệ thống đáp ứng yêu cầu thông qua máy tính Hiện có nhiều phần mềm ứng dụng lĩnh vực này, nhiên phần lớn khơng có tính mềm dẻo, linh hoạt, lập trình chủ động thiết kế Một ngôn ngữ ứng dụng phát triển mạnh giới thiệu đây: Ngôn ngữ VHDL với phần mềm ứng dụng Leonardo Max+plus II Em tiến hành nghiên cứu chức ngôn ngữ VHDL cách sử dụng phần mềm Leonardo Max+plus II để viết chương trình thiết kế mạch cộng số BCD song song Em xin trân trọng cám ơn Thầy Nguyễn Quốc Tuấn thầy cô Khoa Công Nghệ Thông Tin Trường Đại Học Kỹ Thuật tận tình hướng dẫn giúp đỡ em thời gian làm luận văn LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com PHầN I CÁCH Sử DụNG PHầN MềM LEONARDO VÀ MAX+PLUS II A CÁCH Sử DụNG LEONARDO Lời mở đầu: Exemplar logic’s Leonardo cơng cụ tổng hợp tối ưu phần tích mạch logic cách linh hoạt có tính tác động lẫn , phát triển phép sử dụng thiết kế công nghệ độc lập : ASIC,FPGA CPLD Người thiết kế củng cố thiết kế làm sang thiết kế khác , bảo quản vận dụng thứ bậc thiết kế ,sử dụng ngôn ngữ mô tả phần cứng (VHDL) để thể thiết kế chúng Bộ sách hướng dẫn sử dụng leonardo bao gồm : Leonardo User Guide giới thiệu cách dùng Leonardo dịng thiết kế có sẵn Leonardo command Reference qui định chi tiết cách sử dụng lệnh biến Leonardo synthesis and Technology Guide qui định chi tiết cách tổ hợp tối ưu qui định cho thông tin để cài đặt công cụ công nghệ Leonardo User Guide có thành phần : Phần : Giới thiệu Phần : Cách khởi động Leonardo ( có chế độ làm việc chế độ thực thi) Phần : Giới thiệu Flow Guide giúp bạn khởi động thiết lập dòng thiết kế Phần : Giao diện đồ hoạ (GUI) Leonardo Phần : Vài điểm đặc biệt giao diện dòng lệnh ( command line) Phần : Vắn tắt lệnh Leonardo, bước cần thiết kế để xây dựng dòng thiết kế Phần : Mô tả cách mà Leonardo lưu trữ dữu liệu thiết kế Phần : Mô tả cách xem qua thứ bậc thiết kế Leonardo môi trường thiết kế có tính thứ bậc ảng hưởng lẫn bao gồm tối ưu ràng buộc Leonardo bảo quản thứ bậc cho phép chuyển đổi qua lại tạo thứ cấp thứ bậc để tối ưu kết qủa , ta tiết hoá cho thông tin cho cấp thứ bậc Leonardo chạy chế độ INTERACTIVE cơng cụ BUTTON Khi chạy chế độ INTERACTIVE thực : - Xem qua thứ bậc - Điều khiển ảnh hưởng dịng thiết kế - Xem thơng báo area riêng cấp - Lập ràng buộc tối ưu cấp - Xem mạch đường dẫn Khởi động leonardo: Hai chế hoạt động : a.Interactive : giao diện - Giao diện trực tiếp - Giao diện dòng lệnh *Batch (Bó): - Script mode - Galileo compatibility mode LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Tất lệnh lệnh chạy từ Gui,dịng lệnh cữa sổ từ hộp thoại (Dialogue).Hơn nữ chạy qua lại từ Gui dịng lệnh từ bó (batch) dùng Script file * Chế độ Interactive: -Graphical user interface : Gõ vào leonardo -Gõ Leonardo – help để xem dòng lệnh : +Nếu Unix dos gõ :leonardo +Nếu window gõ Star Leonardo - Dòng lệnh (Command line Interface) : Gõ Elsyn Từ hình giao diệb Unix Dos Shell gõ lệnh : Elsyn -Gõ lệnh Elsyn – Help để xem option dòng lệnh (lệnh mà không chạy Unix chạy Windows , gõ Star elsyn ) Leonardo tạo shell TCL qui định từ dấu nhắc , nghiên cứu trạng thái thiết kế trạng thái chuyển đổi mong muốn chạy lại chi tiết thiết kế với cách dùng thiết lập khác để xem kết khác thu b BATCH: Script mode (user-defined flow): Gõ : Elsyn - File [script-filr] Leonardo chạy Tcl Script – file thoát Kịch (Script) sủ dụng lệnh định nghĩa đầy đủ Leonardo không cố định với Galileo Compatibility.Tất lệnh Tcl lệnh tìm thấy đường dẩn Dưới ví dụ File Script: Load – Library X14 Read my_file.vhd Optimize - targertX14-eff quick Write my_ file.xnf Galileo compatibility mode: Chạy mode Galileo Compatibility Leonardo môi trường Unix Dos shell ta gõ lệnh : Elsyn Input_file Output_file argurments Leonardo sau thực thi Tcl Galileo.scr $ EXAMPLAR/data/galileo.scr Mơ tả làm theo thái độ dòng lệnh cuả galileo gc Ví dụ : elsyn my_file.vhd my_file.xnf –target X14 –effort quick Lệnh tối ưu thiết kế VHDL file vhd cho công nghệ Xinlinx 4000, với tối ưu nhanh , ghi kết mảng my_file.xnf 3.Flow guide: Là cơng cụ giúp biết dịng lệnh thiết kế Leonardo Ta dùng chế dộ default trình cài đặt (customize), hai hướng đòi hỏi bước phải quy định nhũng thông tin để chạy lệnh Mỗi bước hộp thoại (Dialog Box) phải rõ lệnh chọn Bản thân lệnh thể cữa sổ Leonardo , nơi mà output từ lệnh hiển thị Chúng ta học hai cách dùng : Dialog Box dòng lệnh * Running the Flow guide : LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Để sử dụng flowGuide , Click Button để hiển thị hộp thoại cũa lệnh Khi hộp thoại chọn,1 mô tả vắn tắt hộp cách sử dụng hiển thị Flowguide Để chạy lệnh ta đưa vào thông tin yêu cầu chọn button hộp thoại Lệnh output thị cữa sổ cách xác gõ vào Khi hồn thành lệnh nhắp button theo trình tự * Customize flowguide : Hộp thoại cho phép chọn item cho thiết kế Để dể hiểu item ảnh hưởng sau ta dời currsor qua item để bảng help hình cầu với thông tin Flowguide bổ sung item chọn Sau chọn tất item mong muốn , nhấn button Run flowguide để Flow Guide Nếu khơng có item thay đổi thấy flowguide default.Để lưu Flow guide chọn Save Setting Now từ Menu Option (hoặc chọn Save Setting On Exit) Lần sau Flow guide Default Chúng ta bật tắt Customize Flow Guide từ Change Preferrence 4.Cách dùng Gui: * Cửa sổ Leonardo: Cho xữ lý dòng lệnh leonardo lệnh Tcl khác ,cũng vài lệnh hệ thống cd,pwd… lệnh khác tìm thấy đường dẫn + Dùng phím mũi tên để dùng chạy lệnh trước + Gõ lệnh :( sử dụng Cut Copy,Paste) +^w:xố từ trước ,^a đầu dịng +Tất lệnh xây dựng c ách dùng hợp lệnh thị input,nếu gõ chúng ( cài sẳn tập lệnh mà qua bàn phím mũi tên) * File menu: Danh sách option file menu sau: +Edit file : hình soạn thảo Leonardo + Run Script : nguồn kịch Tcl (lệnh Tcl Source filename-filename chọn) +Save stranscript:lưu Transcript (toàn văn thị cữa sổ Leonardo bao gồm input output ) - Lệnh dùng thời điểm phải rõ tên file mà muốn lưu Có hạn chế tối đa số dịng thị transcript (default=1000 dòng) +Clear transcript : Xố tất dịng lệnh transcript +Exit : khỏi leonardo * Command menu : Mỗi item :I/O,Optimize,report Hierachy hiển thị hộp đối thoại cho phép thiết lập thông số lệnh chạy lệnh Lệnh mà xây dựng hộp thoại thể dòng lệnh kèm theo output từ lệnh + I/O command menu: Load library :nạp thư viện công nghệ (Actel,Flex, ) Read :đọc file nguồn (VHDL,verilog,…) Load modgen :nạp khối phát sinh Modgen Write :ghi file đích +Optimize command menu: +Report command menu: +Hierachy command menu: +Tool menu: Tất option tool menu sau: LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Flowguide : hiển thị Flowguide customize flowguide Design Browser: Hiển thị Design Browser: Hiện thị mạch Schematic viewer: thị mạch Constraint editor: trình soạn thảo ràng buộc cho phép lập thuộc tính (ràng buộc) đối tượng thiết kế Convenience Procedures: thị hộp thoại Convenience Procedures cho phép truy xuất vài thủ tục Tcl-nơi qui định để tạo công việc dễ dàng thực +Option menu : Các mô tả Option Menu sau: Change Preferrences: Cho phép cài cách dùng GUI Baloon Help :Nếu chọn bảng help hình trịn ,được hiển thị bát lúc vị trí curror Toolbar :hiện toolbar tổng qt Có thể thay đổi vị trí cũ toolbar “option Change references” Chú ý phải lưu cách thiết lập muốn cách định vị cho lần khởi động leonardo sau Save setting on exit: tất thiết lập thoát khỏi Leonardo lưu lại lần sau Save setting now: lưu thiết lập thời với filr cấu hình leonardo.ini +Help menu: Cho phép thị thông báo help cho tất : - Lệnh :(tương đương gõ help command) - Biến :(tương đương gõ help-variables) * Customizing the gui : + Change Preferences Chức option hộp thoại sau: - Show about box at starup : thị about box mỗilần khởi động gui - Ask to save transcript Before delete : nhắc nhở bạn lưu transcript số dòng vượt số dòng qui định tối đa trước tự động xoá Show customize flow Guide screeen before flow guide:hiện hộp đối thoại flowguide bạn chọn button flow guide cữa sổ Toolbar Position:vi trí ngầm định cho toolbar -Theo chiều dọc chọn left right - Theo chiều ngang chọn top button Chú ý :Nếu toolbar thị item bị thay đổi Max lines : Chỉ rõ dòng quy định tối đa hiển thị cửa sổ trước xố transcript Default =1000 Khi vượt giới hạn này, bạn nhắc để lưu lại transcript trước bị xoá 10% cuối dịng vượt q, bạn thấy output gần Editor :sử dụng chọn “edit file” từ file menu hình cữasổ Window color :Cho biết màu cửa sổ, đưa vào giá trị văn dạng thập lục phân Cũng cho giá trị từ Button Listbox, click Item lúc “Set Color Type “, Listbox thay đổi , thấy màu thích hợp .Input Textcolor : Cho biết màu văn cửa sổ Prompt color : Cho biết màu thông báo lổi Lập “set color type”=error LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com .Set color type : cho biết giá trị màu để thay đổi chọn lựa chọn listbox không làm thay đổi màu màu văn *Bổ sung file khởi động : Khi chọn Option save setting now (hoặc thoát khỏi Gui với Option Save Setting On Exit tất thời lưu vào File Leonardo.ini thư mục khởi động Chúng ta cài đặt file cục cách thêm vào lệnh Tcl cần Một ví dụ chung thêm vào hộp thoại thư viện Load Library File tồn cục $EXAMPLAR/data/leonardo.ini ln ln gốc khởi động Nếu ngẩu nhiên xảy tk/tcl mã nguồn định vị thư mục $EXAMPLAR/data/leonardo.ini bổ sung * Thêm vào thư viện : Dùng hộp thoại load library.Hãy soạn thảo file leonardo.ini thư mục khởi động (chọn option /save setting now khơng diện truớc ) thêm vào dịng lệnh vào phần trên: Append glbvar_priv(techlist) “mem nam “ library_name_modgen_library_nam “lib cype:11 11” 5.Giao diện dòng lệnh : Phần mơ tả giao diện dịng lệnh , cho phép : *Thực bước độc lập trình tổng hợp *Đọc thiết kế vào sở dử liệu leonardo *Viết đủ thiết kế *Nạp công nghệ công nghệ tạo mo dun *Tối ưu hoá thiết kế sở dử liệu cho công nghệ đặt biệt *Tạo area báo cáo định thời Các lệnh nhập vào dấu nhắc chế độ tương tác lưu file sau dùng kịch Chú thích : Tất lệnh nhập vào từ cữa sổ leonardo GUI giống dòng lệnh elsyn(non GUI) kịch Tcl Lệnh help: Có thể thị thơng tin dịng lệnh cách dùng lệnh help Lệnh help dùng biểu thức hợp lệ (tên có có khơng có ký tự liên kết) in cách sử dụng cho lệnh mà xếp biểu thức hợp lệ Ví dụ :help pre* thị thông tin tất lệnh mà bắt đầu với chuỗi pre Bổ sung lựa chọn lệnh tự động : Giao diện dòng lệng leonardo có bổ sung lệnh tự động :Ta không ohải gõ đầy đũ lệnh mà nghĩa có khơng bị cấm Các lệnh Leonardo thường có nhiều tuỳ chọn , lựa chọn thực bổ sung tự động bạn không cần nhập vào đầy đủ Nặc danh (Aliasing) Leonardo đưa lệnh Alias cho phép xác định tên riêng cho chuỗi lệnh dùng chung Alias Lp List Design - Port Biến LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Leonardo hổ trợ ngôn ngữ Tcl Do phép gán biến xác định phù hợp vói cú pháp Tcl (set cho thiết lập biến $ var_name để định vị trí biến) Có tập hợp biến có liên kết trực tiếp đến máy tổng hợp leonardo Những biến có ảnh hưỡng đến cách vận hành lệnh tổng hợp Danh sách biến leonardo thị đầy đủ dùng lệnh Help_Variables (Help –V đầy đủ ) Cài đặt giao diện dòng lệnh : Leonardo nạp kịch khởi động : $EXEMPLAR/data/leonardo.ini Có thể cài đặt giao diện dịng lệnh cách điều chỉnh file exemplar.ini Thơng thường dùng alias thủ tục Tcl View_Schematic Push_Design xác định file thêm vào định nghĩa cuả file Nếu có file Examplar.ini thư mục cục Leonardo nạp file thay lúc khởi động $EXAMPLAR/data/leonardo.ini 6.Các dịng kiệu : Phần mơ tả số lệnh cho phép xây dựng dòng thiết kế Nếu sử dụng GUI xem Flowguide cơng cụ học bước xun suốt dịng tổng hợp Để chi tiết cách sử dụng lệnh đánh vào Help command name tham khảo sổ tay Leonardo command reference Các kỹ thuật Loading : Bắt đầu dòng thiết kế , nạp thư viện công nghệ mà ta cần thiết nạp cho cơng nghệ đích để tổng hợp ,và cơng nghệ nguồn với dảy (netlist) định rõ công nghệ Ta dùng lệnh load_library để nạp cơng nghệ , ví dụ : Load_library act3 Lệnh nạp vào công nghệ Actel Act3 vào sở liệu leonardo Một danh sách đầy đủ công nghệ cung cấp Exemplar liệt kê hộp thoại nạp thư viện cuả leonardo GUI Các tập tin công nghệ định vị $exemplar/lib.Có thẻ thu cac thư viện công nghệ bổ sung từ nhà bán hàng cung cấp phịng thí nghiệm hopặc nhóm sưu tầm thứ Chuyển đổi exemplar cần thư viện cơng nghệ cần thiết mà khơng khỏi cd Việc thể thiết kế : Kế tiếp đọc tập tin thiết kế , thiết kế tập tin đơn giản dùng lệnh read để đọc Lệnh read đọc tập tin định dạng VHDL, verilog ,edif xnf Nếu dùng tập tin VHDL verilog có thiết kế lưu nhiều tập tin dùng tập tin VHDL mà bao gồm gói VHDL cần thiết thiết kế tốt nên dùng lệnh analyze đọc tập tin VHDL verilog jưu trữ cấu trúc liệu trung gian lệnh analyze không tạo thiết kế thời điểm Chúng ta phân tích gói VHDL khơng chứa đựng thiết kế thông số thực thể VHDL khối verilog Các lệnh phổ dụng : Chúng ta thực thi lệnh sau đọc thiết kế , trước sau tối ưu : * Write : ghi thiết tập tin ,nếu ghi VHDL verilog trước tối ưu đạc tả công nghệ RTL style VHDL Verilog đươc ghi bao gồnm phát biểu dòng liệu mức thấp * Report _area -all : lệnh cho phép tìm thấy nhiều thơng tin kích thước phức tạp thiết kế trước tối ưu Nó đếm tất Cell nút đặc tả công nghệ cung cấp số lượng cổng AND, OR, DFF, MUX toán tử * Group/ungroup/unfold : Lệnh thao tác phân cấp thiết kế * View_schematic LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Lệnh đẻ xem sơ đồ Netscope thể thiết kế mức cao Nó nạp tự động thư viện ký hiệu cell thiết kế Nếu muốn đưa mức gốc , dùng lệnh sau: (ungroup –all –hierachy} Để lưu thiết tập tin ghi file edif.Có thể khơi phục thiết kế sau cách đọc file edif Nếu muốn khôi phục thiết kế phần ,bảo đảm thư viện công nghệ nạp thiết kế ánh xạ trước khôi phục thiết kế từ file edif Leonardo để lưu trử thông tin không ẩn Thông tin file edif đầy đủ để cài đặt lại thiết kế Sự tối ưu độc lập cơng nghệ nói chung thực thi vài preoptimization thiết kế trước nhắm vào công nghệ dùng lệnh pre-optimization Lệnh pre – optimize-common-logic –unsigned.logic – extract thực thi lan truyền không đổi ,loại bỏ biểu thức phụ chung ,loại bỏ mạch logic không dùng lấy counter/recorder ram.Lệnh thực thi tối ưu độc lập công nghệ tất mức phân cấp thiết kế Nó khơng thay đổi phân cấp Nó khơng lan truyền xun suất phân cấp định vị di chuyễn mạch logic mức phân cấp Sự tạo khối : Chúng ta thực tất tác vụ cuả toán tử , với cổng mức thấp cách dùng lệnh Resolve_modgen.Nếu muốn dùng tạo khối đặc tả công nghệ để thực toán tử , thực thi lệnh load kênh Sự tối ưu đặc tả công nghệ : Dùng lệnh optimize ánh xạcác mạch logic đến cell cơng nghệ đích bảng tra cứu bổ sung đệm I/O đến thiết kế mức đỉnh lệnh không thay đổi ranh giới phân cấp thực thi tối ưu mức Phân cấp với tuỳ chọn effort=quick cho kết nhanh tối ưu khu vực nhỏ Ngồi cịn điều kiện: Xác lập ràng buộc : Sự tối ưu thời gian: Sự chuẩn bị cho soạn thảo: Các công nghệ LUT:Xilinx The design database: Gồm mục sau: 7.1-Thiết kế mơ hình thơng tin data: 7.2-Truy xuất data thiết kế : 8.Sử dụng xem nhanh thiết kế : Library windows: Hierachy windows: Thể dòng đối tượng lựa chọn thiết kế : Các nút cuối hình(bottom row of button): 8.1-Việc lựa chọn đối tượng : 8.2-Xác lập đối tượng : 8.3-Sự thao tác đối tượng thể hiện: 8.4-Bổ sung view đến cữa sổ hierachy: 8.5-Tháo bỏ view cữa sổ hierachy: 8.6-Cập nhật design browser : 8.7-Thông tin cột cửa sổ hierachy: LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Cữa sổ hierachy thể cột :  Cột 1: thể mô tả graphic/text đối tượng thiết kế  Cột 2: thông tin bổ sung loại đối tượng : instance port B.CÁCH SỬ DỤNG MAX+PLUS II * TổNG QUÁT: Trong qúa trình thiết kế tổng hợp mạch yêu cầu đặt cuối kiểm tra mạch thiết kế có kết qủa theo yêu cầu Trong phầm mềm tổng hợp kiểm tra mạch có phần mềm Max+plusII phần mềm mạnh tổng hợp kiểm tra mạch Sau tơi trình bày cách sử dụng phần mềm : Khởi động phần mềm Max+plusII : Sau phần mềm Max+plus II cài đặt ta tiến hành khởi động sau :  Bước : Bấm vào biểu tượng MAX2WIN Sau bấm vào biểu tượng để khởi động hình Max+PlusII sau: Trình bày hình Max+ Plus2 gồm thành phần sau: -Dòng :Thanh Toolbar dùng thị thư mục tập tin hành -Dòng : Gồm mục : + Maxplus2 + File + Assign + Option + Help - Dòng : biểu tượng sử dụng trực tiếp ứng dụng Max+plus2 - Dịng :Khu vực trình bày loại text  Bước : Các thành mục dòng sau : LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com attribute specifications disconnection specifications use clauses end [package] [package-name]; Ví dụ xác định gói phát biểu sau: package SYNTH_PACK is constant LOW2HIGH: TIME:= 20 ns; type ALU_OP is (ADD, SUB, MUL, DIV, EQL); attribute PIPELINE: BOOLEAN; type MVL is (‘U’, ‘O’, ‘1’, ‘Z’); type MVL_VECTOR is array (NATURAL range ) of MVL; subtype MY_ALU_OP is ALU_OP range ADD to DIV; component NAND2 port (A, B: in MVL; C: out MVL); end component; end SYNTH_PACK; Những mẫu tin xác định gói xác định nhận phần thiết kế khác (units desing) sử dụng thư viện (library) sử dụng mệnh đề, thông thường xác định tập hợp kể hàm (function) thủ tục (procedure) số Trong trường hợp việc chạy chương trình giá trị số xác định tách biệt desing unit gọi package body Từ cung cấp ví dụ gói khơng bao gồm chương trình định nghĩa xác định bằng, thành phần gói khơng địi hỏi phải Xem xét việc xác định gói sau use WORK.SYNTH_PACK.all package PROGRAM_PACK is constant PROP_DELAY: TIME; A deferred constant function “and” (L, R: MVL) return MVL; procedure LOAD (singal ARRAY_NAME: inout MVL_VECTOR; START_BIT, STOP_BIT, INT_VALUE: in INTEGER); end package PROGRAM_PACK; The keyword package after end is optional Trong trường hợp thành phần gói điều kiện cần thiết xác định gói bao gồm khả nhận hàng hai chương trình 9.2 Package Body (thành phần gói): Một thành phần gói chủ yếu gồm việc chạy chương trình giá trị chấp nhận thành phần gói Do bao gồm thành phần khác Cú pháp phần gói trình bày sau: package body package-name is package-body-item-declartions > These are: subprogram bodies complete constant declartions subprogram declartions type and subtype declartions file and alias declartions use clauses end [package body] [package-name]; Tên gói phép giống tên package declartion Một phần gói khơng cần thiết liên kết (kết hợp) package declartion khơng có chương trình Sự kết hợp phần gói để thay cho package declartion PROGRAM_PACK miêu tả cung cấp đoạn sau là: package body PROGRAM_PACK is LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com use WORK.TABLES.all; constant PROP_DELAY: TIME:= 15ns; function “and” (L, R: MVL) return MVL is bigin return TABLE_AND (L, R); TABLE_AND is a 2-Dc defined in another package, TABLE end ”and”; procedure LOAD (singal ARRAY_NAME: inout MVL_VECTOR; START_BIT, STOP_BIT, INT_VALUE: in INTEGER) is Local declartions here Bigin Procedure behavior here end LOAD; end PROGRAM_PACK; Một mẫu tin có bên phần gói, có hạn chế với thành phần nhận thấy desing unit khác Sự hạn chế ngăn cản mẫu tin gói, máy nhận desing unit khác Do thành gói sử dụng tới thơng tin mật có sẵn, chúng khơng thể nhận thấy được, gói sử dụng thơng tin thơng tin tốn cục, với thiết kế khác nhận Đây mô đến thực thể với phần kiến trúc mà khơng thể nhận thấy hoạt động, mà mẫu tin xác định thực thể xét nhận thấy phần thiết kế khác Một khác biệt xác định gói xác định thực thể Đó thực thể tổng hợp kiến trúc với tên khác nhau, gói xác định phần gói, tên chúng có ràng buộc 9.3 Desing File (thiết kế tập tin): Thiết kế file nguồn VHDL tập tin ASCII, bao gồm nhiều đoạn thiết kế, đoạn thiết kế có phần sau:  Entity declartion (xác định thực thể)  Architecture body (phần kiến trúc)  Configuration declartion (xác định mơ hình xếp)  Package declartion (xác định gói)  Package body (phần gói) Trong phần 9.1 trình bày biên dịch sử lý Tập tin thiết kế dựa vào phân tích VHDL, sau cú pháp phát biểu tập tin nguồn, đại diện cho việc biên dịch cho tập tin thiết kế tập tin đưa vào Mỗi Inter khung thông tin nhập vào kho thông tin thư viện tạo mẫu, chúng có thiết kế làm việc thư viện 9.4 Desing Libraries (thiết kế thư viện): Biên soạn thiết kế thơng tin có sẵn thiết kế, thiết kế thư viện Một thư viện có sẵn có vùng thơng tin có sẵn hộ thơng Theo hướng tạo ng thông tin không bắt buộc phải định nghĩa ngôn ngữ Trong xếp hệ thống mà thiết kế thư viện hệ thống tập tin thư mục tham khảo đoạn thiết kế thơng tin có sẵn tập tin thư mục này, phần quản lý thiết kế thư viện không rõ ràng ngôn ngữ lập lại để xác định việc thi hành lại lệnh Số thư viện thiết kế có tồn quyền định, thư viện thiết kế có tên logic tượng trưng cho VHDL Sự kết hợp tên logic với tên vật lý trì mơi trường Có thư viện thiết kế với tên logic STD Thư viện bao gồm biên soạn miêu tả hai gói STANR TEXTIO Một thư viện thư viện có tên logic WORK Khi tập tin thiết kế dịch tự đưa vào thư viện WORK Bởi trước biên dịch, tên logic WORK đến thư viện thiết kế (xem hình 9.1) Thư viện khác gọi IEEE Thư viện bao gồm gói STD_LOGIC_1164 với độ rõ ràng kiểu logic kết hợp với hàm khác Một gói tên chuẩ IEEE IEEE std 1164-1993 VHDL nguồn có LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com mặt tập tin thiết kế Một tập tin thiết kế bao gồm nhiều loại thiết kế Bài thiết kế thêm vào lớp trình bày sau: Primary unit (một tiêu chuẩn chính): Những khơng có khả để trực tiếp đến đoạn thiết kế khảo chứng là: a Entity declartion (khai báo thực thể): Khai báo mục thực thể ngầm định nối kết bên kiến trúc b Package declartion (khai báo gói): khai báo mục với khai báo gói đưa thiết kế khác để sử dụng thư viện sử dụng mệnh đề Khai báo mục bên khai báo gói ngầm định tương ứng với phần gói c Configuration declartions (khai báo định ng) Seconry units (những phần thứ yếu): phần bỏ qua phần Những phần thiết kế khơng bỏ qua việc khai báo mục phía chúng để đưa phần thiết kế, phần tham khảo phần thiết kế khác Những phần thứ yếu là: a Architecture bodies: Khai báo tín hiệu phần kiến trúc tham khảo phần thiết kế khác b Package bodies (các phần gói): Một phần thứ yếu (chính xác) cho tên thư viện Các phần thứ yếu kết hợp với phần chủ yếu khác có tên tên thư viện Như vậy, phần thứ yếu phép giống tên để kết hợp phần chủ yếu Như ví dụ xét, cho gọi thực thể AND_GATE trùng tên thư viện Với phần kiến trúc có phép giống tên, khác thực thể MY_GATE thư viện thiết kế phần kiến trúc phép có tên AND_GATE Những phần thứ yếu phép tồn với phần chủ yếu thư viện, ví dụ chư khai báo thực thể tất phần kiến trúc thường trú thư viện Tương tự, khai báo gói phân gói phép kết hợp thường trú thư viện độc lập Kai báo định ng phần chủ yếu, thường trú thư viện định ng khai báo thực thể 9.5 Order of Analysis (phân tích đắn): Từ đưa đến khai báo mục phần tới thiết kế khác, phải bắt buộc mục thiết kế, thiết kế tham khảo đến việc khai báo mục phần khác, phân tích sau phần chủ yếu Ở ví dụ, việc khai báo định ng tham khảo thực thể COUNTER, khai báo thực thể với COUNTER phân tích sau khai báo định ng Một phần chủ yếu phân tích sau nhiều kết hợp phần thứ yếu Ví dụ khai báo thực thể phân tích sau phần kiến trúc 9.6 Implicit Visibility (trạng thái ngầm định): Một phần kiến trúc tiềp nhận khảnăng ngầm định tất khai báo thực thể, từ giới hạn thực thể câu lệnh architecture architecture-name of entity-name is … Tương tự, phần gói tiếp nhận ngầm định khai báo gói phát triển là: package body package-name is … Khi tên gói giống khai báo gói 9.7 Explicit Visibility (trạng thái chi tiết): Trạng thái chi tiết hoá, khai báo mục phần thiết kế khác, phần mềm sử dụng mệnh đề sau Library clause Use clause Sử dụng mệnh đề xuất nhiều khai báo phận thiết kế Nếu thư viện mệnh đề sử dụng mệnh đề điểm bắt đầu phần thiết kế, gọi mệnh đề ngữ cảnh Hình 9.2 trình bày ví dụ Xác định mục mệnh đề ngữ cảnh thường nhận thấy thiết kế, chúng hỗ trợ tới mệnh đề ngữ cảnh, phần không nhận thấy đoạn thiết kế chủ yếu (chính), chúng có LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com thể biến ng giống tập tin thiết kế (desing file) Điều muốn nói tập tin thiết kế bao gồm phần thiết kế chính, trình bày hình 9.3, mệnh đề ngữ cảnh xác định phần thiết kế cần Ví dụ mệnh đề ngữ cảnh xác định trước phần thiết kế A nhận thấy phần thiết kế A, mệnh đề ngữ cảnh xác định sau phần thiết kế B nhận thấy phần B 9.7.1 Library Clause: Thư viện mệnh đề tạo nhận biết tên logic thư viện, tham khảo phía phần thiết kế ng mệnh đề thư viện là: library list-of-logical-library-names ; Mệnh đề thư viện library TTL, CMOS; Tạo tên logic TTL CMOS nhận thấy phần thiết kế Chú ý phần mệnh đề thư viện không tạo đoạn thiết kế mục có mặt thư viện, thường thiết lập (tạo) tên thư viện để nhận biết (nó giống khai báo thay cho tên thư viện) Ví dụ: muốn sử dụng tên ‘TTL.SYNTH_PACK.MVL’ phía phần thiết kế khai báo đầu tên thư viện sử dụng mệnh đề “library TTL” Mệnh đề thư viện library STD, WORK; Khai báo thường ngầm định phần thiết kế 9.7.2 USE Clause (sử dụng mệnh đề): Có hình thức sử dụng mệnh đề: use library-name.primary unit-name ; hình thức use library-name.primary unit-name item; hình thức Hình thức đầu sử dụng mệnh đề xác định tên phần chủ yếu (chính) từ thư viện tới việc tham khảo mô tả thiết kế Xét ví dụ: library CMOS; use CMOS.NOR2 configuration is use entity NOR2 ( .); end; Chú ý: thực thể NOR2 phép có sẵn thư viện trước thử biên dịch phần thiết kế sử dụng Hình thức sử dụng mệnh đề nhận thấy khai báo thành phần Do thành phần có thể, tham khảo phía bên phần thiết kế Ví dụ: library ATTLIB use ATTLIB.SYNTH_PACK.MVL; MVL is a type declared in SYNTH_PACK package The package SYNTH_PACK is stored in the ATTLIB desing library entity NAND2 is port (A, B: in MVL; ) Nếu tất thành phần phía phần dùng khóa all để sử dụng.Ví dụ: use ATTLIB.SYNTH_PACK.all; Thiết lập khao báo tất thành phần gói SYNTH_PACK thư viện ATTLIB Sử dụng mệnh đề use ATTLIB.all Thiết lập tất tên phần có mặt thư viện ATTLIB Trạng thái bên thành phần tới đoạn thiết kế nhận mong muốn tốt Một phương pháp sử dụng chọn tên Một ví dụ sử dụng chọn tên là: library ATTLIB; use ATTLIB.SYNTH_PACK; entity NOR2 is port (A,B: in SYNTH_PACK.MVL; ) LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Vậy có tên phần thiết lập nhận biết sử dụng mệnh đề, tên phần phép sử dụng liên tiếp (dọc theo) tồn tên kiểu tham khảo, SYNTH_PACK.MVL xác định.Ví dụ khác trình bày phần Kiểu Value_9 định nghĩa gói SIMPACK mà biên dịch tong thư viện CMOS library CMOS package P1 is procedure LOAD (A, B: CMOS.SIMPACK.VALUE_9; ); end P1; Trong trường hợp này, tên phần SIMPACK xác định thời gian sử dụng Do vậy, chúng TABLE đưa thành phần áp dụng thư viện Nếu cần thiết đưa loại thành phần thiết kế chúng giống thư viện ? Trong trường hợp chúng không cần tới việc xác định mệnh đề thư viện thường đoạn thiết kế mà khai báo ngầm định mệnh đề thư viện library STD,WORK; Tương tự thư viện STD bao gồm gói STANRD TEXTIO Gói STANRD gồm có khai báo cho kiểu CHARACTER, BOOLEAN, BIT_VECTOR INTEGER Sử dụng mệnh đề khai báo ngầm định use STD.STANRD.all; Tất thành phần khai báo phía gói TANRD có sẵn để sử dụng cấu trúc VHDL, tương tự gói TEXTIO Nếu khai báo thành phần gói cần tham khảo đến sử dụng mệnh đề hình thức sử dụng là: use STD.TEXTIO.all; PHầN III: VIẾT CHƯƠNG TRÌNH THIẾT KẾ MẠCH CỘNG BIT SONG SONG BCD CÓ HAI TỐN HẠNG I/ GIỚI THIỆU CHUNG : -Trong máy tính phép tính máy tính thường sử dụng mã BCD biểu diển số thập phân, số thập phân thường biểu diển cho group bit thứ tự từ 0000 đến 1001.Việc cộng số thập phân biểu diển trường hợp sau: *Tổng lớn 9: Khi cộng số có mã số BCD : LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com +4 0110 0100 mã BCD mã BCD 1001 mã BCD Ví dụ : ta cộng 33 với 45 45 0100 0101 BCD for 45 +33 0011 0011 BCD for 33 78 0111 1000  BCD for 78 Trong ví dụ bit cộng kết cộng nhị phân BCD 1000 8,tương tư mã BCD 0111,tổng cộng kết 0111 1000,mà kết số BCD for code 78 *Tổng lớn 9: Ví dụ : cộng 0110  BCD for +6 0111  BCD for 13 1101 sai kết group BCD Tổng 1101 khơng tồn mã BCD ,nó phải sữa sai theo qui tắc sau: 0110  BCD for +0111 BCD for 1101 kết sai 0110 -sữa sai cộng thêm 0001 0110 BCD for 13 Như biểu diễn ,0110 cộng để sửa sai cho kết BCD.Chú ý : kết nhớ vị trí số thập phận thứ Ví dụ khác: 47 0100 0111 +35 0011 0101 82 0111 1100 số nhớ sữa 0110 1000 0010 BCD for 47 BCD for 35 sai kết cộng thêm tổng BCD Khi cộng bit kết tổng sai sữa sai ta cộng thêm (0110) Khi nhớ mà kết nhớ cộng vào số BCD vị trí số thập phân thứ Thí dụ như: số nhớ cộng kết ban đầu đem lên 59 0100 1001  BCD for 59 +38 97 0011 1001 1001 1000 BCD for 38 0001 0110 cộng sữa sai cộng thêm 0111 BCD for 97 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com II/ NGUYÊN LÝ CỘNG SỐ BCD bit : -Khi tổng nhỏ ta lấy kết kết cộng ban đầu -Khi tổng lớn ta lấy kết ban đầu cộng thêm “0110”(6) để sữa sai -Và kết có nhớ đưa vào group đầu cộng kết group đầu -Sau kết chung ghép group lại với để 1group 8bit bcd -Có trường họp khác sau cộng sữa sai xong ta có nhớ ta đem lên cộng tất hàng lại với kết đưa group III /LƯU ĐỒ CỦA CHƯƠNG TRÌNH :{mạch cộng bit song song BCD cho tốn hạng } IV /CHƯƠNG TRÌNH : Chương trình thể qua hai phần mềm cho Leonardo thể dạng mô mạch ban đầu,1 cho Max+plus2,trong Max+plus2 cho kết dạng sóng có kiểm tra kết dạng sóng thơng qua mạch sau: Mạch mô theo Leonardo: Mạch test theo max+plus2 Phần chương trình:Có cách viết Cách 1: theo kiểu behaviour(hành vi) package thu is {package dùng chung cho cách Behaviour structure} type myinteger is range to 3; function add (A,B : bit_vector(3 downto 0);cin : bit) return bit_vector; end thu; package body thu is function add (A,B :bit_vector(3 downto 0);cin :bit) return bit_vector is variable R: bit_vector(4 downto 0); variable C : bit_vector(3 downto 0); begin R(0) := A(0) xor B(0) xor Cin; C(0) := (A(0) and B(0)) or (A(0) and Cin) or (B(0) and Cin); for i in to LOOP R(i) := A(i) xor B(i) xor C(i-1); C(i) := ((A(i) xor B(i)) and C(i-1)) or (B(i) and A(i)); end LOOP; R(4) := C(3); return R; end ; end thu; Sau sủ dụng công cụ soạn thảo –text- editor file dịch thành cơng ta có mạch: LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com library ieee; chương trình viết theo kiểu behaviour use ieee.std_logic_1164.all; library work; use work.thu.all; entity thu5 is port (A,B,E,F: in bit_vector(3 downto 0); Cin :bit; C : out bit_vector(7 downto 0); Cout : out bit); end thu5; architecture data of thu5 is signal out1,out2: bit ; signal C1,C2: bit_vector(3 downto 0); begin P: process(A,B,Cin) variable tam1,X: bit ; variable tam: bit_vector(3 downto 0); variable R,R1,R2,R3: bit_vector(4 downto 0) ; begin tam:= "0110"; out1

Ngày đăng: 01/11/2022, 20:06