عنوان پایاننامه
پیاده سازی یک سیستم نورونی بیولوژیک بر روی FPGA
- رشته تحصیلی
- مهندسی کامپیوتر-معماری کامپیوتر
- مقطع تحصیلی
- کارشناسی ارشد
- محل دفاع
- کتابخانه مرکزی پردیس 2 فنی شماره ثبت: E 2350;کتابخانه مرکزی -تالار اطلاع رسانی شماره ثبت: 60291
- تاریخ دفاع
- ۱۹ شهریور ۱۳۹۲
- دانشجو
- صفا یقینی بنابی
- استاد راهنما
- سعید صفری
- چکیده
- علاقهمندی به علوم اعصاب محاسباتی در سالهای اخیر بیشتر شده است. هدف از این علوم تلاش در راستای نمایش نحوه عملکرد و پردازش اطلاعات در مغز بر اساس عملکرد و رابطه بین بخشهای مختلف سیستم عصبی است. به همین جهت استفاده از شبکههای نورونی به ویژه شبکههای نورونی زیستی به یک علاقه خاص تبدیل شده است. شبکههای نورونی در زمینههای مختلفی نظیر تشخیص بیماری در پزشکی، شناسایی الگو، مسائل کنترلی و موارد مشابه کاربرد دارد. نورونها بلوک اصلی سازنده شبکه نورونی هستند که به دو صورت سلولهای تحریکی/مهاری ظاهر میشوند. نورونها با دریافت سیگنالهای الکتروشیمیایی از نورونهای دیگر، آنها را ترکیب و از طریق آکسون کوتاه و یا بلند به نورونهای دیگر انتقال میدهند. برای انجام یک عملکرد خاص، ممکن است تا هزاران نورون در یک شبکه نورونی به هم وصل باشند. فعل و انفعالات یک نورون در شبکه نورونی، به صورت موازای با سایر نورونها انجام میشود و پاسخها با تعامل با سایر نورون ها تولید میشوند. کارکرد موازی نورونها از ویژگیهای مهم پردازشی یک شبکه نورونی است. پاسخ هر نورون، چه پاسخ گذرا و چه پاسخ پایدار، تحت تاثیر رفتار تمام نورونهای متصل به آن است. چنین تعامل پویایی بین نورونها در عملکرد شبکههای نورونی بسیار مهم است. شبیهسازی چنین تعاملهایی، در یک سیستم با اجرای ترتیبی دشوار است، زیرا به علت اجرای خط به خط برنامههای کامپیوتری، سرعت آمادهسازی پاسخ شبکه نورونی به ویژه در حالتی که تعداد نورونهای شبکه زیاد باشد، بسیار پایین و شبیهسازی آن برای یک شبکه نورونی بزرگ در عمل غیرممکن است. بنابراین وجود بستری برای پیاده سازی شبکه های نورونی که در آن نورونها به صورت موازی فعالیت می کنند ضروری به نظر میرسد. در این پایاننامه با هدف شبیهسازی رفتار شبکههای نورونی بزرگ، به پیادهسازی سختافزاری یک شبکه نورونی زیستی پرداخته شده است. با توجه به تنوع کاربردهای مربوط به شبکههای نورونی و با هدف استفاده از قابلیت پیکربندی مجدد، طراحی سختافزاری سیستم نورونی مبتنی بر FPGA انجام شده است. از آنجاییکه شبکه های نورونی زیستی دارای تعداد بسیار زیادی نورون هستند، در طراحی و پیادهسازی انجام شده در این پایاننامه سعی شده است شبکه ای با بیشترین تعداد نورون بر روی یک FPGA با منابع سخت افزاری محدود پیاده سازی گردد. در طرح سختافزاری مورد نظر با بهرهگیری از اشتراک منابع، قابلیتهایی نظیر توسعهپذیری و مقیاسپذیری فراهم شده است. برای ارزیابی و صحهگذاری سیستم سختافزاری موجود، شبیهسازیهای سطح بالای بخشهای مختلف شبکه نورونی در نرمافزار MATLAB با خروجی سطح بیت شبیهسازیهای سختافزاری در حالتهای مختلف تطبیق داده شده است. همچنین نتایج سنتز طرح مورد نظر بر روی یک نمونه ابزار به دست آورده شده است. لغات کلیدی: نورون، حوضچه نورونی، ریز-ستون، شبکه نورونی، هاجکین-هاکسلی، FPGA، VHDL، MATLAB، Simulink.
- Abstract
- In the recent years, interest for the computational neuroscience has been increased. The goal of this science is to attempt to show how the brain processes the information based on the functionality and the relationship between different parts of the nervous system. Neural network can be used in various fields, such as medical diagnosis, pattern recognition, control issues, etc. Neurons are the basic blocks of neural networks, which are categorized in two kinds of excitatory and inhibitory cells. A neuron receives electrochemical signals from other neurons, combines them, and transmits them through their short or long axons to other neurons. To perform a specific function, it is possible that thousands of neurons connect to each other in a neural network. Interactions of neurons in a neural network are performed in parallel with other neurons. This parallel interaction is an important feature in a neural network. Transient as well as steady-state response of each neuron is influenced by the behaviors of all other neurons that are connected to it. Such dynamic interactions in a neural network are very important. Simulation of these interactions on a system with a sequential implementation is difficult because the speed of response preparation of neural network, particularly in neural network with a large number of neurons is very low and in practice, it is impossible. Therefore developing computational tools to implement large networks of neurons interact in parallel is of special interest. In this thesis, in order to simulate the behavior of a large neural network, a hardware implementation of a biological neural network is designed. According to the diversity of applications of neural networks and using the reconfigurable feature, a neural network is implemented on an FPGA. Since the biological neural networks have large number of neurons, we tried to have the largest number of neurons on an FPGA with limited number of hardware resources. Using different policies, such as resource sharing made it possible to have a network that is scalable and extendable. To validate and evaluate the implemented system, the results of high level simulation of the neural network that is done using MATLAB Simulink is compared with the output of bit-level hardware simulation in different states. In addition, the synthesis result is obtained on a prototype design tool. Keywords: Neuron, Neural Pool, Mini-Column, Neural Network, Hodgkin-Huxley, FPGA, VHDL, MATLAB, Simulink.