# برنامه نویسی میکروکنترلر (MicroController) ها و MicroProcessor ها > برنامه نویسی سیستم های Embeded > آموزش: برنامه نویسی به زبان VHDL

## silsin

سلام 
به شخصه این کار رو بهترین راه برای یادگیری خودم می دونم . اینکه بیام چیزی که بلدم رو یادم بدم چه در سطح یک کلاس درسی و یا چه در سطح اموزش متنی توی اینترنت به شخصه و با تجربه قبلی در یاد گیری چیزهای مختلف می تونه در درجه اول به خودم کمک کنه و همچنین می تونه به دوستان دیگه ای که می خوان کار کنن هم منفعت برسونه 

در کل 
هدف تاپیک یادگیری برنامه نویسی به زبان VHDL . 
منبعی که از اون برای موضوعات استفاده خواهم کرد کتاب (اموزش vhdl محصول انتشارات دیباگران تهران ) که موضوعات و سرفصل ها رو از روی اون پی گیری می کنم 
امیدوارم بتونیم در کنار هم یه چیزی یاد بگیریم و همچنین به پی برد اطلاعاتمون در این زمینه هم کمک بشه 

نکته مهم اینه که سعی می کنم موضوعات حول محور همین کتاب باشه . مطلبی گنگ بود سعی می کنم با اوردن منابع مختلف تکمیلش کنم 
اگر چه استفاده از این زبان نیازمند تست خروجی هست که ما خروجی تولید شده خودمون روهم ببینیم . اگر چه با این طور اموزش دادن مسلما امکانش نیست که بخوایم خروجی وارد شده در برد هایی مثل fpga رو نشون بدیم اما می تونیم با نرم افزارهای شبیه سازی دیگه کمی این مشکل رو برطرف کنیم 
نرم افزار شبیه سازی که من برای این کار پیشنهاد می کنم Aldec Active-HDL . نرم افزار خوبیه برای تست هم گزینه های مختلفی رو در اختیارتون قرار میده . به عنوان مثال می تونید به صورت دستی سیگنال رو به مدار وارد کنید تا نتیجه رو به صورت فرکانسی یا سیگنالی دریافت کنید . همچنین نکته خوب این نرم افزار اینه که علاقه مندان به ورلوگ (اگه درست گفته باشم اسمشو :D) هم می تونن با این نرم افزار کد نویسی و شبیه سازی رو انجام بدین 

لیست موضوعات: 
ضمیمه 1 : معرفی نرم افزار Active-HDL
ضمیمه 2 : پروسه تولید 
فصل اول : 
مقدمه 
 - تاریخچه VHDL 
 - چرا از VHDL استفاده می شود ؟
 - سنتز 

فصل دوم : 
مقدمه ای بر VHDL

----------


## silsin

منبع : پی سی دانلود نرم افزار *Active-HDL* یک محیط توسعه یکپارچه برای دستگاه های دیجیتالی می باشد که بر طبق شبیه سازی منطق هسته بنا شده است و از پروژه های متنی و یا گرافیکی ای که تلفیقی از زبان های VHDL, Verilog, EDIF, SystemC, SystemVerilog باشند، پشتیبانی می کند.
Active-HDL  ، یک محیط توسعه بسیار قدرتمند برای تمامی چیپ های FPGA، به منظور ساخت و  مدل‌ سازی آن ها، در اختیار شما قرار می دهد. این IDE، قابلیت های پیشرفته  ای به منظور پشتیبانی از پروژه های سطح بالا در اختیار شما قرار می دهد.  یکپارچگی بسیار عالی همه ی ابزارها، باعث می‌شود تا کنترل بسیارخوبی بر  پروژه داشته باشید.
سیستم ساختار Active-HDL، در نزدیکی طراحی واحد  کنترل مسیر (route) آن ساخته شده است که به کاربران اجازه می دهد تا به  

  :لبخند گشاده!:  

ابزارهای طراحی و کتابخانه  هایی که در پروژه از آن ها استفاده می‌کنند، به سادگی دسترسی پیدا کند.  همچنین تمام کتابخانه‌هایی که سازندگان FPGA از قبل کامپایل کرده اند و  آماده ی استفاده در پروژه آن ها می باشند، در نرم افزار Active-HDL گنجانده  شده است. 
*قابلیت های کلیدی نرم افزار Active HDL:*
- پشتیبانی از (تقریبا) تمامی تراشه های موجود در بازار، همچون تولیدات شرکت های Actel, Altera, Lattice, Quicklogic, Xilinx
- قابلیت برنامه نویسی همزمان برای چند تراشه و کامپایل و شبیه سازی مجزای هر یک
- پشتیبانی از زبان های استاندارد تحت IEEE شامل VHDL, Verilog®, SystemVerilog Design, SystemC
- دیباگر و اشکال یاب پیشرفته کد و برنامه
- قابلیت شبیه سازی پروژه های DSP (پردازش سیگنال دیجتال) توسط MATLAB®/Simulink
- قابلیت طراحی PCB برای تراشه و پروژه ی ایجاد شده
- قابلیت ایجاد فایل PDF و سایر گزارشات در خروجی
- و ...


لینک دانلود : 
"فکر کنم حرام باشه تو این سایت ."  :لبخند گشاده!:

----------


## silsin

پروسه تولید : 
* کتاب مدل ابشاری رو بیان کرده بنابراین من هم بر همین اساس جلو میرم 
یک توضیح مختصر از این مدل در وی کی پدیا : 



> مدل ٓابشاری یک مدل ترتیبی توسعه و تولید نرم‌افزار است و درآن مراحل  تولید به شکل یک جریان مداوم متمایل به سمت پأيین است( همانند یک ٓابشار‌ )  که شامل فازهای تحلیل خواسته‌ها، طراحی، پیاده‌سازی یا implementation،  ٓازمودن و تست کردن، یکپارچه سازی یا integration، و دادن محصول به بازار  می‌شود. اغلب گفته می شود ریشه ی اصطلاح ٓابشاری از مقاله‌ای گرفته شده است  که توسط Winston W.Royce در سال ۱۹۷۰ نوشته شده است. مدیریت و مراحل تکمیل  پروژه در این متدولوژ‌ی به سادگی قابل پیاده‌سازی است. زیرا در مرحله اول  که مرحله بررسی نیازمندیهای پروژه می باشد، مشتری و تیم برنامه نویسی طی  چند جلسه به بررسی نیازمندیها و خواسته‌های پروژه می پردازند. سپس پس از  ٓان نوبت به مرحله طراحی می رسد، در مرحله ی طراحی افراد طرح کلی پروژه را  می ریزند و جزییات پیاده‌سازی مشخص می شود. پس از مرحله ی طراحی تیم برنامه  نویسی خود را برای پیاده‌سازی ٓاماده می کند. در این مرحله همه قسمت های  کد, پیاده‌سازی می شوند, در انتهای این مرحله, ما مرحله یکپارچه سازی یا  integration را خواهیم داشت یکی از مشکلترین قسمت های انجام پروژه‌ها در  این مرحله می باشد زیرا تنوع و گسترده‌گی کار کامل در این مرحله نقش دارد،  هر چه میزان گسترده‌گی کار بالتر باشد سختی یکپارچه سازی نیز بیشتر خواهد  بود.
>  مزیت آبشاری: 1-فهم این مدل ساده تر است 2-از نظر تولید مستندات بهتر هستن 3-مراحل قابل کنترل و بررسی هستن.
>  معایب آبشاری: 1- کار تیم های پایانی موکول به اتمام کار تیم های  ابتدایی می باشد 2-بررسی بازخور سیستم توسط کاربران نهایی دارای پروسه مجزا  و در انتهای کار میباشد 3- گذر از مراحل بصورت نوبتی و وقت گیر میباشد




تعمیم این مدل در روند کاری ما , روند رو به چهار بخش تقسیم بندی می کنه . 
فاز تولید راه به چهار قسمت تقسیم بندی می کنیم 
بخش اول : 
تجزیه و تحلیل و انالیز 
این فاز عبارت است از نوشتن مشخصه ها . منظور از مشخصه ها یعنی که مشخص کنیم چه کارهایی باید انجام دهیم 
بخش دوم : 
طراحی 
زمانی که این مشخصه ها , به دست امدن آنهاه را به یک معماری و کد VHDL تبدیل می کنیم . این فاز با تعریف معماری یا بلوک دیاگرام اغاز می شود. وقتی معماری اماده شد کد vhdl را برای اجزای مختلفی که از این طراحی به دست امده می نویسیم 
تتوجه داشته باشید در این مدل تولید صحت انجام هر بخش باید مشخص شود تا به مرحله یا فاز بعدی برویم 
بخش سوم : 
نگاشت تکنولوژی 
مشخص کردن نوع تکنولوژی مورد استفاده از اهمیت زیادی برخوردار است . عواملی که در انتخاب نوع تکنولوژی دخالت دارند عبارتند از : 
قسمت - کیفیت کار - فراهم بودن و امثال آن ....
بخش چهارم : 
ساخت نمونه اولیه 
در این مرحله نمونه اولیه ساخته شده و با مشخص های طراحی و نتیجه آن مقایسه می شود اگر نتیجه با مشخصه ها یکسان باشد مدار آماده بهره برداری است 
 به عنوان مثال برنامه تحریری برای یک پروژه دانشجویی به شکل زیر است : 
1- خلاصه 
2 - مقدمه 
2 -1 تحریر پروژه 
جدول زمانی 
تاریخچه 
2 - مشخصه های طراحی 
وظایف و شروط زمانی 
4 - توصیف وظایف 
تعریف معماری 
اجزای I/O 
توضیف اجزا 
5 - نتیجه سنتز 
تعداد گیت ها 
6 - تست و نمونه اولیه 
طرح ریزی پایه های تراشه 
7 - نتیجه گیری 
منابع و مراجع

----------


## silsin

ضمیمه 3 : 
چون مبحث اموزش VHDL و ربطی به نرم افزاری که از اون استفاده می کنیم نداره بنابراین ترجیح میدم  برای امادگی کار با این نرم افزار لینک های زیر رو معرفی کنم 
لینک 1 
لینک 2
http://www.google.com/url?sa=t&rct=j...96339352,d.bGg

http://www.google.com/url?sa=t&rct=j...96339352,d.bGg

http://www.google.com/url?sa=t&rct=j...96339352,d.bGg

http://www.google.com/url?sa=t&rct=j...96339352,d.bGg

http://www.google.com/url?sa=t&rct=j...96339352,d.bGg

این پست با اموزش های بیشتر از این نرم افزار (Active - hdl ) به روز رسانی خواهد شد

----------


## silsin

تاریخچه : 
اگر به گذشته و روند رشد طراحی های الکترونیکی نگاهی بیندازیم خواهیم دید که برای آزمایش یک طرح یک نمونه اولیه فیزیکی درست می کردند که معمولا به صورت سیم بندی بر روی بورد بود.  در آن زمان برای تولید سیگنال های ورودی از یک مولد سیگنال و از یک اسیلوسکوپ برای مشاهده سیگنال های خروجی استفاده می کردند . مشکل در اینجا این بود که به خودی خود امکان مشاهده شکل موج های چند گانه یا امکان مشاهده ده شکل موج غیر متناوب بر روی اسیوسکوپ وجود نداشت که البته رفع این نقص زمانی ممکن شد که تحلیل گرهای منطقی ساختته شدند و ذخیره سازی شکل موجها را از چند سیگنال خروجی امکان پذیر ساختند. 
آنگاه پیشرفت های بیشتر موجب پیدایش نمونه های اولیه پیچیده تر گردید . اما این پدیده خود مشکل تست کردن گره های داخلی تراشه را به همراه داشت که این مشکل نیز با تولید ابزارهای کامپیوتر برطرف شد . در این نرم افزارها مدلهای مدارات مجتمع مختلف - منبع تولید سیگنال و تحلیل منطقی گره ها پیش بینی شده بود. در کامپیوتر به مولد تولید سیگنال و اسیلوسکوپ شبیه ساز می گویند . اینک این امکان به وجود امده بود که تمام اطلاعات گرفته شده از هر گره را به منظور انجام یک شبیه سازی کامل ذخیره نمود . (مشاهده می کنید که ابتدا اطلاعات سیگنال فقط شامل  0 یا 1 بود که بعدا مقادیری مثل X و مقدار Z یا همان اپدانس بالا به آن اضافع شد . 



پست به روز رسانی خواهد شد ....

----------


## roshanaei.1367

سلام من یه سوال داشتم کسی می دونه این کد چه کار می کنه؟برای testbenchنوشته شده
file LPFIn_fileR:text

----------

