liên kết hồi quy. Với tín hiệu đầu vào cập nhật lần thứ nhất, mạng lại tính được tín hiệu đầu ra cập nhật mới (đầu ra cập nhật lần thứ nhất), đầu ra cập nhật lần thứ nhất lại thực hiện vai trò đầu vào cập nhật lần thứ 2 thông qua các liên kết hồi quy, mạng lại tính được đầu ra cập nhật lần thứ 2. Quá trình này sẽ diễn ra liên tục cho đến khi mạng đạt trạng thái cân bằng.
Từ sơ đồ cấu trúc mạng Hopfiled ta thấy mỗi Neural đều có một tín hiệu vào lấy từ bên ngoài vào xj và một đầu vào là ngưỡng j, với j=1,2,3,...n. Tín hiệu ra của Neural thứ i ở th i điểm (k+1) được tính theo biểu thức :
i i n i j , 1 j k j ij ) 1 k ( j sgn w y x y , với i = 1,2,3,....,n (2.28)
Mạng hopfield có thể hoạt động ở phương thức đồng bộ hoặc bất đồng bộ; Trong phương thức đồng bộ các trọng số của mọi Neural trong mạng được cập nhật đồng bộ.
Trong phương thức không đồng bộ thì trọng số của duy nhất một Neural được cập nhật tại th i điểm tính, vì chỉ có một Neural được chọn trong n Neural có trong mạng, nên xác suất lựa chọn là 1/n.
Xem xét luật học của mạng Hopfield liên tục.
Mạng Hopfield liên tục khác mạng Hopfield r i rạc ở chỗ tín hiệu đầu ra ở dạng liên tục chứ không phải ở dạng hai trạng thái, mạng Hopfield liên tục có thể được xây dựng trên công nghệ của mạch điện tử gồm các phần tử tương tự. Mô hình Hopfield liên tục ở dạng mạch điện có n bộ khuếch đại, mỗibộ khuếch đại có nhiệm vụ biến đổi điện áp vào ui thành điện áp ra yi thông qua hàm chuyển đổi f(ui), hàm chuyển đổi sử dụng ở dạng sigmod. Mỗi bộ khuếch đại thứ i có điện dẫn, điện dung đầu vào và tín hiệu từ bên ngoài đầu vào tương ứng là gi, ci, xi. Trong thực tế tín hiệu đầu vào là một nguồn dòng điện không đổi cho bộ khuếch đại. Điện dẫn wij nối đầu ra của nút j với đầu vào của nút thứ i vì điện trở có giá trị dương nên cầncó đầu
GVHD: TS. HOÀNG TRANG 28 HV: Nguyễn Lâm Thương ra đảo yiđể mô phỏng cho các tín hiệu hạn chế. Chú ý mạng có tính chất đối xứng
của các trọng số wij=wji, wii=0 .
Luật cập nhật cho các nút của mạng Hopfield liên tục được thực hiện bởi luật Kirhop 1, tổng dòng điện đi vào một nút bằng tổng dòng điện đi ra một nút ta có:
i i i j n i j , 1 j ij i i i j j ij i w (y u ) g u x w y Gu x dt du C (2.29) Với i n i j , 1 j ij i w g G
Phương trình trên mô phỏng sự biến đổi trạng thái của hệ thống theo th i gian. Nếu mỗi một nút có giá trị khởi tạo ban đầu ui(0) thì có thể tìm được ui(t) và yi(t)=a(ui(t)) bằng cách giải phương trình vi phân nói trên.
2.6.4 Các lu t học khác.
BAM
Bộ nhớ liên kết 2 chiều (BAM) do Kosko đề xuất vào năm 1987
BAM là bộ nhớ liên kết hồi quy có hai lớp và có thể coi nó là sự mở rộng của Hopfield. Có hai loại là BAM r i rạc và BAM liên tục.
Các lu t học không giám sát
Các luật học không giám sát có dạng phương trình vi phân bậc nhất, được áp dụng cho mạng Neural chỉ có một lớp với vectơ tín hiệu đầu vào là X=[x1,x2,....,xm]T và vectơ tín hiệu ra y=[y1,y2,....,yn]T, trọng số liên kết từ Neural thứ j đến thứ i là wij.
Luật học Hebb
Các luật học Hebb tín hiệu
Luật học Hebb tín hiệu
Luật học Hebb Sanger
GVHD: TS. HOÀNG TRANG 29 HV: Nguyễn Lâm Thương
Các luật học cạnh tranh
Luật học cạnh tranh
Luật học Kosko
Các luật học Hebb vi phân
Luật học Hebb vi phân
Luật học Kosho-Klopf
2.7 Các tính chất c a m ng Neural.
Là hệ phi tuyến.
Là hệ xử lý song song.
Là hệ học và thích nghi.
Là hệ nhiều biến, nhiều đầu vào, nhiều đầu ra.
2.8 Ngôn ngữ mô t phần c ng HDL (Hardware Description Language).
Verilog là một trong hai ngôn ngữ mô tả phần cứng chính (gồm VHDL và Verilog HDL), được ngư i thiết kế phần cứng tạo một cấu trúc vi mạch, sử dụng để mô tả, thiết kế các hệ thống số: một bộ chuyển mạch số, một vi xử lý, một bộ nhớ memory hay đơn giản chỉ là một flip-flop.
Verilog HDL có thể sử dụng để thiết kế hệ thống số ở nhiều mức khác nhau, ví dụ ở mức cao như các mô hình đặc trưng đến các mức thấp như các mô hình bố trí dây, điện trở, transistor … trên một mạch tích hợp; mô hình các cổng logic, flip_flop trong một hệ thống số; mô tả thanh ghi và sự di chuyển dữ liệu giữa các thanh ghi (RTL – Register Transfer Level); thậm chí là mức chuyển mạch transistor (switch level). Verilog cho phép ngư i thiết kế phần cứng thực hiện các thiết kế của họ ở mức hành vi, thực hiện các thiết kế cho tới bước cuối cùng của chu kỳ thiết kế.
GVHD: TS. HOÀNG TRANG 30 HV: Nguyễn Lâm Thương Hình 2.22: Verilog Abstraction Level
T i sao sử d ng Verilog HDL?
Hệ thống số là một hệ thống phức tạp bậc cao. cấp độ chi tiết nhất, chúng có thể bao gồm hàng nghìn thành phần như: các transistor hoặc các cổng logic, cho nên
GVHD: TS. HOÀNG TRANG 31 HV: Nguyễn Lâm Thương với hệ thống số lớn thiết kế ở mức cổng không còn sử dụng được nữa. Ngày này, sự
phức tạp của phần cứng đã tăng lên ở một mức độ mà giản đồ cổng logic hầu như vô ích khi nó biểu diễn một mạng lưới phức tạp các liên kết không theo chức năng của thiết kế. Từ những năm 1970, các kỹ sư điện và máy tính đổi hướng theo ngôn ngữ mô tả phần cứng (HDL). Verilog cho phép thiết kế và mô tả hệ thống số ở nhiều mức độ khác nhau và có sự hỗ trợ từ các công cụ thiết kế bằng máy tính để giúp cho việc thiết kế ở những mức độ khác nhau.
Verilog HDL trong thiết kế mạch tích hợp là mô phỏng thiết kế và tạo mẫu trên FPGA trước khi chuyển sang sản xuất. Mục tiêu của Verilog không phải tạo ra những chip VLSI mà sử dụng Verilog để mô tả một cách chính xác của bất kỳ hệ thống số nào và nạp chương trình tạo mẫu lên FPGA.
Verilog hỗ trợ nhiều cấp độ thực hiện phần cứng khác nhau. Nhưng có ba cấp rất quan trọng sau:
Behavioral level (Mức Mô hình hành vi): cấp độ này mô tả các thuật toán chạy đồng th i (theo hành vi). Mỗi thuật toán tự nó thực hiện tuần tự, nghĩa là bao gồm tập các lệnh thực thi tuần tự. Các Functions, Tasks và các khối Always là các thành phần chính. Không quan tâm đến cấu trúc thực hiện của thiết kế.
Register-Transfer Level (Mức truyền thanh ghi): Thiết kế ở cấp độ truyền thanh ghi RTL mô tảcác đặc tính của mạch bằng cách hoạt độngvà quá trình truyền dữ liệu giữa chúng. Và một nguồn clock phải được sử dụng trong thiết kế. Thiết kế RTL bao gồm các giới hạn th i gian nghiêm ngặt: các hoạt động phải được lên lịch xảy ra tại một th i điểm nào đó. Hiện nay ngư i ta thư ng định nghĩa code RTL là “bất cứ code nào có thể tổng hợp được thì đó là code RTL”
Gate Level (Mức cổng): Với mức cổng, đặc tính của hệ thống được mô tả bằng các kết nối logic và hoạt động định th i giữa chúng. Tất cả các tín hiệu đều là riêng biệt. Chúng chỉ có một trong các giá trị logic („0‟, „1‟, „X‟, „Z‟). Các hoạt động thư ng dùng là các thực thể logic được định nghĩa sẵn như (các cổng AND, OR, NOT…… ). Sử dụng thiết kếở mô hình mức cổng có lẽ không phải là ý tưởng
GVHD: TS. HOÀNG TRANG 32 HV: Nguyễn Lâm Thương tốt trong bất kỳ công đoạn thiết kế logic nào. Mức cổng thư ng được tạo bởi các
các công cụ tổng hợp hơn là ngư i viết và chỉ sử dụng cho mô phỏng.
2.9 Giới thi u phần mềm Quartus II.
Quartus II là công cụ phầnmền phát triển của hãng Altera, cung cấp môi trư ng thiết kế toàn diện cho các thiết kế SOPC (hệ thống trên một chip khả trình –system on a programmable chip).
Đây là phầm mền đóng gói tích hợp đầy đủ phục vụ cho thiết kế logic với các linh kiện logic khả trình PLD của Altera, gồm các dòng APEX, Cyclone, FLEX, MAX, Stratix . . . Quartus cung cấp các khả năng thiết kế logic sau:
Môi trư ng thiết kế gồm các bản vẽ, sơ đồ khối, công cụ soạn thảo các ngôn ngữ: AHDL, VHDL và Verilog HDL.
Thiết kế LogicLock.
Là công cụ mạnh để tổng hợp logic.
Khảnăng mô phỏng chức năng và th i gian.
Phân tích th i gian.
Phân tích logic nhúng với công cụ phân tích SignalTap@II.
Cho phép xuất, tạo và kết nối các file nguồn để tạo ra những file chương trình.
Tựđộng định vị lỗi.
Khảnăng lập trình và nhận diện linh kiện.
Phần mền Quartus II sử dụng bộ tích hợp NativeLink@ với các công cụ thiết kế cung cấp việc truyền thông tin liền mạch giữa Quartus với các công cụ thiết kế phần cứng EDA khác.
Quartus II cũng có thể đọc các file mạnh (netlist) EDIF chuẩn, VHDL và Verilog HDL cũng như tạo ra các file netlist này.
Quartus II có môi trư ng thiết kế đồ họa giúp nhà thiết kế dễ dàng viết mã, biên dịch, soát lỗi, mô phỏng . . . .
GVHD: TS. HOÀNG TRANG 33 HV: Nguyễn Lâm Thương Với Quartus có thể kết hợp nhiều kiểu file trong một dự án thiết kế phân cấp.
Có thể dùng bộ công cụ tạo sơ đồ khối (Quartus Block Editor) để tạo ra sơ đồ khối mô tả thiết kế ở mức cao, từ đó tạo những sơ đồ khối để tạo ra thành phần thiết kế mức thấp.
Quartus cho phép làm việc với nhiều file ở cùng th i điểm, soạn thảo file thiết kế trong khi vẫn có thể biên dịch haychạy mô phỏng các dự án khác. Công cụ biên dịch Quartus II nằm ở trung tâm hệ thống, cung cấp quy trình thiết kế mạnh cho phép tùy biến để đạt được thiết kế tối ưu trong dự án. Công cụ định vị lỗi tự động và các bản tin cảnh báo khiến việc phát hiện vàsửa lỗi trở nên đơn giản hơn.
S đ kh i (Block Diagram):
Trong cách mô tả này, mạch điện tạo nên từ các cổng logic r i rạc, hay các hàm gồm nhiều cổng logic tích hợp (megafunctions). Để vẽ mạch theo cách này, nhấn New, chọn tab Device Design Files, chọn Block Diagram/Schematic File, nhấn chọn Symbol Tool để hiện các cổng logic hay các hàm Megafuntions. Khi đã chọn xong các cổng logic hay hàm thì dùng các công cụ nối dây để vẽ mạch hoàn chỉnh.
Các file thi t k :
Nhấn New, chọn tab Device Design Files, chọn Verilog HDL (hay VHDL hay AHDL). Với cách này, mạch điện được mô tả bởi các đoạn mã thể hiện các đầu vào và đầu ra của các khối mạch.
T o file mới:
Từ giao diện của Altera Quartus chọn File/New Project Wizard. Cửa sổ New Project Wizard sẽ hiện ra, chọn next. cửa sổ tiếp theo, bạn chỉ đư ng dẫn tới folder cho Project mới. Thư ng là tạo một folder mới trong máy, lấy tên tùy theo mạch muốn thiết kế. Sau đó có một bước quan trọng là copy file code Verilog (đã biên soạn bằng Notepad++ hoặc bất kỳ một trình editor nào có hỗ trợ ngôn ngữ Verilog) vào trong folder này.
GVHD: TS. HOÀNG TRANG 34 HV: Nguyễn Lâm Thương Trong 2 ô tiếp theo, Quartus yêu cầu đánh vào tên của Project mới, chú ý lấy tên
của Project trùng với tên của module mà đã biên soạn trongVerilog.
Sau khi nhấn next, Quartus sẽ đòi thêm file code cho Project. Chọn đư ng dẫn tới file code Verilog nằm trong folder project mà mới tạo ở trên. Sau đó nhấn Add (ở ô ngay dưới đó), sẽ thấy file code.
Chọn loại thiết bị mà muốn sử dụng để test. Ví dụ DE1 Board, DE2 Board là bảng mạch dùng để thí nghiệm tại phòng lab. Các thông số được chọn như trong hình vẽ. Lưu ý các thông số này được chọn tùy thuộc vào loại thiết kế dùng để thí nghiệm, trước khi thực hiện bước này cần xemvà kiểm tra kĩ các thông số trước khi nhấn Finish.
Sau khi nhấn Finish là đã hoàn thành thiết lập những thông số đầu tiên cho Project. Sau khi Quartus mở các file cần thiết, tại cửa sổ Project Navigator, chọn tab Files, và mở file code (file.v).
Trong cửa sổ mới hiện ra có chứa toàn bộ phần code, xóa phần code dành cho các module Tester hoặc modules Testbench (những module này dùng để thiết lập một số trạng thái và điều kiện để kiểm tra hoạt động của mạch). Sau đó nhấn nútprocessing/ Start Compilation để Quartus bắt đầu biên dịch phần code của bạn.
Trong quá trình biên dịch, nếu phát hiện lỗi, Quartus sẽ báo quá trình biên dịch không thành công cùng một số lỗi. Click đôi vào các dòng màu đỏ ở tab Processing sẽ dẫn tới vị trí phần code lỗi. Sau khi hoàn tất sửa lỗi (debugging), Quartus sẽ báo Full Compilation was successful_biên dịch thành công.
Sau khi hoàn tất biên dịch, có thể xem sơ đồ mạch đã thiết kế bằng cách chọn Tools/Netlist Viewers/RTL Viewer.
Thực hiện tải thiết kế xuống và kiểm tra bằng thiết bị thực sự. Chọn Assignments/Assignment Editor. Trong mục Category, bạn chọn PIN. Trong mục Edit, dựa trên các chỉ dẫn thông số của thiết bị để nhập số PIN vào tùy thuộc vào tín hiệu đầu ra hay đầu vào và tùy thuộc vào tín hiệu ra được hiển thị bằng gì.
GVHD: TS. HOÀNG TRANG 35 HV: Nguyễn Lâm Thương Sau khi hoàn tất gán chân PIN, nhấn Start Compilation một lần nữa để Quartus
lấy các thông số chân PIN, sau đó nhấn chọn Programmer. Trong cửa sổ Programmer mới xuất hiện, nhấn Start để bắt đầu tải chương trình xuống thiết bị. Sau khi tải chương trìnhxuống, có thể kiểm tra mạch thiết kế bắt đầu kiểm tra mạch thiết kế ngay trên thiết kế bằng cách gạt các công tắc, nhấn các nút .. . .
Phân tích và t ng h p (Analysis & Synthesis):
Quá trình này sẽ xem xét thiết kế logic để tạo ra cơ sở dữ liệu thiết kế, thực hiện tổng hợp logic và tối ưu hóa thiết kế.
Fitter:
Quá trình này được được xem như là đặt vị trí (cổng logic) và định tuyến (giữa chúng) – Place and Router. Sử dụng cơ sở dữ liệu được tạo ra bởi quá trình phân tích và tổng hợp, công cụ Fitter sẽ cân đối giữa các yêu cầu về th i gian, logic của thiết kế. Nó sẽ ấn định mỗi hàm logic đến một đơn vị logic mà tối ưu nhất về th i gian truyền và định tuyến cũng như lựa chọn đư ng nối phù hợp và gán chân linh kiện.
Assembler:
Quá trình hợp dịch dựa vào kết quả của quá trình Fitter sẽ tạo ra hình ảnh của thiết kế, có thể trong các dạng sau: Programmer Object Files (.pof), SRAM Object Files (.sof), Hexadecimal (Inter-Format) Output Files (.hexout), Tabular Text Files (.ttf), and Raw Binary Files (.rbf).
Classic Timing Analyzer (Phân tích th i gian):
Phân tích th i gian cho phép xác định xung nhịp, các yêu cầu về th i gian vào/ra (I/O) nhằm thỏa mãn mục đích định th i. Quá trình này sẽ xác định tính năng tốc độ cho toàn bộ thiết kế, cho từng khối Project (bản thiết kế) và cho việc truyền nhận của các nút và chân linh kiện.
GVHD: TS. HOÀNG TRANG 36 HV: Nguyễn Lâm Thương
Cách th c mô ph ng ho t động trongQuartus
Công cụ Simulator tích hợp sẵn trong Quartus II cho phép mô phỏng hoạt động của Project. Trước khi mô phỏng cần tạo ra danh sách đư ng kết nối (netlist) bằng cách nhấn Processing/Generate Functional Simulation Netlist.
Để có thể quan sát được dạng sóng mô phỏng, cần tạo các file khác lưu trữ dạng sóng, bởi việc chọn File/New/Other Files/ Vector Waveform File. Các tín hiệu này sẽ hiện ra trong danh sách Selected Nodes, nhấn OK.
Để Project có dạng sóng cho 2 tín hiệu vào là Clock và Clear, đánh dấu chọn vào dạng sóng, trên thanh WaveForm chọn Overwrite Clock, chọn