آموزش fpga

sh85

مدیر بازنشسته
کاربر ممتاز
با سلام در این تاپیک فایل ها و پی دی اف های حاوی آموزشFPGA قرار داده خواهد شد انشالله که مفید واقع شود
یک pdf داشتم واسه شما هم می ذارم
http://www.zshare.net/download/701448236618529d/
 
آخرین ویرایش:

BEST lIFE

عضو جدید
FPGA

FPGA

سلام،
۲ تا لینک براتون میزارم که اولی ۵۰ قسمت هست در مورد FPGA ،
و دومی به صورت PDF که میتونین راحت دانلود کنین و بخونین.
فقط اینکه به زبان انگلیسی هستن و فکر میکنم بهتره که اول PDF رو بخونین و بعد برین سراغ ۵۰ قسمت.

http://svenand.blogdrive.com/archive/11.html


http://www.cs.ucf.edu/~ahossam/2004/cpld/
 

seyed mansoor

عضو جدید
آموزش FPGA

آموزش FPGA

با سلام خدمت همه دوستان جدیدم.
من هم دوست دارم در زمینه FPGA به صورت سخت افزاری کار کنم .اگر کسی بتونه کمک و راهنمایی خاصی بکنه سپاسگذار خواهم بود.
البته من به صورت نرم افزاری زیاد کار کرده ام که به زودی اطلاعات خود را در اختیار سایر دودستان قرار خواهم داد.
 

seyed mansoor

عضو جدید
آموزش FPGA

آموزش FPGA

آشنایی با تراشه های FPGA
FPGA ها آخرین نسل از خانواده میکروکنترلرها می باشند که حداکثر انعطاف پذیری را در طراحی و پیاده سازی انواع سخت افزار رادارند.در واقع FPGA هاتراشه هایی خام هستند که از تعداد بسیار زیادی گیت های منطقی پایه(مانند گیت هایAND ،OR ،Mux و...)تشکیل شده اند که به وسیله سوئیچ های قابل برنامه ریزی به یکدیگر ارتباط دارند که بسته به تکنولوژی ساخت انواع مختلفی دارند.
برای برنامه ریزی(Program )کردن FPGA ها زبان های متعددی وجود دارد. زبان هایی از قبیل ABEL ،AHDL ،VHDL ،Verilog و...
زبان VHDL زبان استانداردی است که همه کامپایلرهایی که توسط شرکت های مختلف(در صورت قدم نهادن در این راه نام شرکت هایXilinx ،Actel،Alteraو چندین شرکت دیگر را به وفور خواهید دید)ارائه شده آن را پشتیبانی می کنند.
هر یک از این شرکتها نرم افزاری را به بازار عرضه کرده اند که آن ها را نه چندان راحت! می توان تهیه واستفاده کرد.
نرم افزار Quartus ارائه شده توسط شرکت Altera
نرم افزارXilinx ISE ارئه شده توسط شرکت Xilinx
نرم افزار Active HDL ارائه شده توسط شرکت Actel
و....
از بین آنها نرم افزار Quartus محبوبیت زیادی دارد ولی متاسفانه من موفق به تهیه آن نشدم ، یعنی تهیه کردم ولی هر کدام به دلیلی اجرا نشدند; یکیش فایل licence را می خواست; یکیش نصب میشد درست اجرا نمی شد...(می دونید که این نرم افزارها کرک شده هستندو...)
و پس از کش و قوس فراوان با نرم افزار Xilinx ISE7.1 راه افتادم که کار با اون ساده است.
حال با این آشنایی مختصر شما را با منابع موجود آشنا می کنم:
1-آشنایی با FPGA و زبان VHDL ،اثر دکتر سید رضی ،انتشارات ناقوس، همراه با نرم افزار Quartus .این کتاب با اینکه نرم افزارآن نصب نشد ولی برای یادگیری زبان VHDL کتابی خوبیه
2-آشنایی با FPGA وزبان VHDL ،اثر کاوه فارغی،انتشارات کامپیوتر پایتخت،همراه با نرم افزار 7.1 Xilinx ISE و modelism (نرم افزار modelism توسط شرکت Xilinx ارائه شده است که درواقع مکمل Xilinx ISE میباشد وبرای شبیه سازی طرح است و بررسی عملکرد طرح است)،زبان VHDL را خیلی خلاصه گفته ولی بخشی در رابطه با برد آموزشی داره که فصل خوبیه،البته این کتاب از زیر چاپ دراومده با انتشاراتش که تماس گرفتم گفتند ویرایش جدیدش رو در نمایشگاه کتاب تهرون عرضه مکنن(من از این کتاب یه نسخه اضافه دارم اگر تصمیم گرفتید اینو تهیه کنین ولی گیروتون نیمد می تونم براتون پستش کنم)
3-آموزش VHDL با مثال،اثر داگلاس پری،ترجمه فرزاد شکاری زاده، انتشارات؟؟؟.
همرا با نرم افزارهای:modelism،Xilinx ISE5 وچند نرم افزار دیگر که کابرد زیادی ندارند.
عمکرد این نرم افزارها تقریبا" مثله همه و تفاوت زیادی با هم ندارن.
اگر در این زمینه سوءالی داشتید در خدمتتون هستم.
فعتا"خدا نگدارتون باشه.
 

navidkhob

عضو جدید
درخواست

درخواست

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

Reza_Mahmoodi

عضو جدید
Verilog HDL-1

Verilog HDL-1

با سلام و خسته نباشيد

ابتدا در مورد تاپيك :
چرا اين تاپيك اينقدر سرد مونده جاي تعجب دارد !! FPGA يك چيپ الكترونيكي خيلي خيلي انعطاف پذير (در طراحي هاي مورد نظر) است كه بايد علاقه مندان زيادي داشته باشد ! ولي باز هم تاپيك هاي AVR و ARM شلوغ تر هستند. در ادامه از اين اختراع بشر ، بيشتر صحبت خواهد شد تا بلكه اين تاپيك هم رونقي بگيرد.

بخش اول ،جايگاه FPGA در دنياي الكترونيك (مخصوص مبتدي ها)
FPGA يك تراشه ي الكترونيكي براي پياده سازي مدارهاي ديجيتال ، به زبان عاميانه اينكه همونكاري رو كه تو آز مدار منطقي انجام مي ديد تا چهارتا گيت رو روي يك برد بورد به هم وصل كنيد تا يك تابع دلخواه بسازيد و براي همين چهار تا گيت بايد چهل تا سيم اينور و اونور كنيد ، همين كارو ميشه با FPGA انجام داد و اون هم نه چهار تا گيت بلكه چند صد هزار تا گيت ، در مقوله ي مقايسه ي FPGA با Micro و كلاً همه ي تراشه هاي استاندارد ASIC اين كافي است كه بگوئيم : اگر با ميكرو ميشود فلان پرو‍ژه را انجام داد با FPGA مي شود خود همان ميكرو را طراحي كرد و فلان پروژه را انجام داد.
امّا بحث كمي تخصصي تر :
روند طراحي (Design) در سيستم ها الكترونيكي فارغ از اينكه هدف چيست به چندين سطح تقسيم مي شوند:

1 - برنامه هاي كاربري (نرم افزار) :
مثلاً Word ,photoshop, Orcad, CST, HFSS, FarCry, IGI, Call of Duty 6, Protel DXP و غيره ، در اينجا طراح همان كاربر مي باشد كه هدف مورد نظر خود را با اين برنامه ها تامين مي كند ، اين هدف ممكن است سرگرمي باشد يا تايپ يك پايان نامه يا مثلاً طراحي و كشيدن شماتيك يك مدار ، و لازمه اش اين است كه كاربرد با امكانات برنامه و چگونگي كار با آن آشنا باشد .

2 - زبان هاي برنامه نويسي سطح بالا :
مانند MATLAB, Pspice , Bascom,C#, pascal, fortran, Basic , غيره كه به نوعي برنامه نويسي و ساخت الگوريتم در آنها وجود دارد و تفاوتش با قبلي ها اين است كه در اينجا كاربر يا طراح خيلي از بلوك ها را خود مي سازد و به كار مي گيرد و آن برنامه هاي كاربري را مي توان با اين زبان ها طراحي كرد و در اختيار كاربر قرار داد.

3 - زبان هاي برنامه نويسي سطح مياني :
مانند C, C++ ، اين زبان ها به اين دليل سطح مياني نامگذاري شده اند كه از طرفي مانند زبان هاي سطح بالا كار با آنها راحت است و به زبان محاوره ي انسان نزديكند و از طرفي در بعضي مواقع مانند زبان هاي سطح پايين مستقيماً به سخت افزار نيز دسترسي دارند به اين معني كه در طراحي كامپايلرهاي آنها در بعضي مواقع از زبان سطح پايين استفاده نشده است بلكه مستقيماً از زبان ماشين نيز استفاده شده است. همچنين برنامه هاي كاربري (نرم افزارها) و زبان هاي سطح بالا را مي توان با زبان هاي سطح مياني Design كرد.

4 - زبان هاي سطح پايين :
مانند اسمبلي ، اين زبان ها به اين منظور طراحي شده اند تا از پيچيدگي زبان ماشين (صفر و يك) كم كنند و بتوان با آنها زبان هاي سطح مياني و بالا را طراحي كرد و مورد استفاده قرار داد.

5 - زبان ماشين : صفر و يك ،
زبان ماشين در واقع زبان سخت افزار است و براي مديريت حافظه ها و واحد هاي حساب و منطق به كار مي رود و از اينجا وارد بحث سخت افزار خواهيم شد :
روند طراحي سخت افزارها يا همان ماشين هاي پردازش اطلاعات نيز به صورت زير دسته بندي مي شوند :

5-1 - طراحي سطح سيستم : هر بلوكي كه ورودي ها و خروجي ها و چگونگي كنترل آنها را مشخص كند يك سيستم ناميده مي شود ، مثلاً ARM, AVR, Z80 و غيره ، سيستم ها يك خوبي دارند و آن اينكه كار با آنها به مراتب راحت تر و سريعتر از ديگر واحد هاي سخت افزاري است . البته خود آنها هم از چندين لحاظ به چندين قسمت تقسيم ميشوند، مثلاً در ميكرو كنترلر حافظه و واحد حساب و منطق هر دو در يك سيستم جمع شده اند ، اما يك CPU به تنهايي يا يك RAM به تنهايي (كه خود يك سيستم هستند) از ميكرو سطح ژايين تر هستند.

5-2- طراحي سطح ماژول : ماژول ها در واقع قطعات سازنده ي سيستم ها هستند ، به اين معني كه از اتصال چند ماژول به هم مي توان يك سيستم را طراحي كرد . مثلاً مالتي پلكسر يا شمارنده يا يك ALU يا يك Full Adder يا شيف رجيستر ، نمونه هائي از ما‍ژول ها هستند.

5-3- طراحي سطح گيت : گيت ها را كه همه مي شناسد : NOT,AND,OR,XOR,XNor,NAND,NOR ، همان گيت هايي كه در آز مدار منطقي زياد كاربرد دارند . گيت ها قطعات سازنده ي ما‍ول ها هستند و نكته ي مهم اينكه :
FPGA is here
FPGA اينجا قرار دارد

و اما پايين ترين سطح گفته شود و بعد برگرديم به FPGA :

5-4- طراحي سطح ترانزيستور (البته فقط ترانزيستور نيست : خازن ، ديود ، سيم ، فلز ، ...)
در اين نوع طراحي نياز به تكنولوژي خيلي بالا و هزينه ي زياد براي ساخت قاب ها و ماسك ها و تجهيزات گرانقيمت لايه نشاوني و ... مي باشد. (مراجعه كنيد به فيزيك الكترونيك) و اي كاش روزي كشورمان ايران به فن آوري هاي ميكرو الكترونيك و نانو الكترونيك دست پيدا كند و ساير قطعات ديجيتال را مستقيماً توليد كنيم !
كاش آقاي احمدي نژاد در همان زمان بحراk مالي جهاني كه همه حاضر بودند تكنولوژي بفروشند ، يك صدم آنچه به فكر توليد سيمان و آرماتور در كشور بود به فكر وارد كردن تكنولو‍ژي به كشور هم بود.
حتي اگر به صورت بومي و جدّي نيز كشور به اين سمت و سو مي رفت نتايج بسياري مي گرفتيم. بر خلاف كساني كه مي گويند بازار اشباع است از قطعات الكترونيك و نيازي نيست كه به تكنولوژي دست پيدا كرد ، به سه دليل به تكنولوژي ساخت قطعات نيمه هاي در حد نانو بايد توجه زياد (نه كم) كرد : 1- استفاده ي محصول ديگران به طوري كه ما قادر نيستيم خودمان بسازيم باعث مي شود مقداري حس ذلت و ناتواني آزار دهنده اي سراغمان آيد و پولمان هم به جيب آنها رود به جاي اينكه صرف ارتقاء تكنولوژي داخل شود و تا ابد محتاج خواهيم بود 2- در مواقع اظطرار مانند جنگ كه خيلي به اين قطعات نياز داريم ممكن است تحريم شديد شويم كه ممكن است تاثر بگذارد و آن موقع براي به فكر افتادن دير باشد. 3- اين قطعاتي كه استفاده ميشود خيلي ها نمي داندند درونش چيست ، يعني ماژول هايي كه فقط خروجي دارند ، مثلاً فرض كنيد درونش يك تايمر يا تاريخ نگار باشد كه به فلان روز كه رسيد قطعه معيوب شود و كار نكند . حال اگر از اين دست موارد بكار گيرند چه ؟ شبيه اينكه شما ويندوز استفاده مي كنيد ولي نمي دانيد كه آيا واقعاً جاسوسي شما را ميكند اين سيستم عامل يا نه ، يا مثلاً مرورگرها يا yahoomail يا Gmail يا ... كه صد درصد سوء استفاده هم مي كنند . بنابراين در قطعات الكترونيك هم نمي توان مطمئن بود !
*************************************************
لپ كلام : اگر متن بالا را خوانديد مي فهميد كه FPGA در حقيقت يك تراشه براي طراحي سطح گيت است و اينكه مي گويند FPGA براي مدارهاي ديجيتال پيشرفته است يا براي پردازش موازي است يا ... اينها در حقيقت همه اش يك حقيقت است :
FPGA يك تراشه براي طراحي سطح گيت است


در قسمت آينده خواهد آمد :
پيشنياز ها براي كار با FPGA و طراحي ديجيتال



:gol: سعادت در دو چيز است : تشخيص وظيفه ، انجام وظيفه :gol:


 
آخرین ویرایش:

Reza_Mahmoodi

عضو جدید
Verilog HDL-2

Verilog HDL-2

با سلام و خسته نباشيد

قسمت دوم : شروع كار با FPGA

براي استارت كار با FPGA و انجام پروژه هاي مختلف با اون در ابتدا كارهايي لازمه كه قدم به قدم گفته مي شوند:

1- پايه ي طراحي ديجيتال چه با FPGA چه با گيت هاي مجزا ، مدار منطقي است. پس ابتدا مدار منطقي را خوب بخوانيد و با گيت ها ، ماژول ها و اصول طراحي مدارهاي تركيبي و ترتيبي آشنا شويد ، همچنين با ساختار كلّي FPGA ها آشنا شويد.

2- FPGA با زبان توصيف سخت افزار برنامه ريزي مي شود ، بنابراين گرامر يا Syntax يكي از زبان ها توصيف سخت افزار مانند Verilog يا VHDL را ياد بگيريد. توصيه مي شود Verilog ياد بگيريد چون خيلي ساده تر و سريعتر مي توان برنامه ها رو طراحي و سنتز كرد. در قسمت هاي بعدي هم روي Verilog تمركز مي كنيم. در آخر همين پست فرق زبان توصيف سخت افزار با زبان هاي نرم افزراي مانند C ، در آخر همين پست گفته خواهد شد.

3- با يكي از نرم افزارهايِ شبيه سازي زبان هاي توصيف سخت افزار آشنا بشويد و روي اون كار كنيد. توصيه مي شود با نرم افزار Modelsim كار كنيد كه خيلي محيط استاندارد و راحتي دارد و ورودي و خروجي ها رو راحت مي تونيد چك كنيد و Test bench هاي خوبي هم مي شود توش نوشت و خروجي ازش گرفت. در ادامه هم براي شبيه سازي روي همين مورد بيشتر تمركز مي كنيم.

4- بعد از اينكه سه مرحله ي فوق را با موفقيّت گذرانديد (كه مدار منطقي را اگر نخواندي ايد حد اكثر يك ترم و آن دو گام بعدي حداقل سه چهار هفته طول مي كشد) ، يك برد آماده ي FPGA تهيّه كنيد (كه معمولاً نرم افزار سنتز هم همراهش هست) و سپس درس هايي را كه در شبيه سازي ياد گرفته ايد روي برد پياده كنيد. توصيه مي شود از برد هايي كه FPGA هاي شركت XIilinx دارند استفاده كنيد. دقت كنيد اگر مبتدي هستيد لازم نيست عجله كنيد تا به اين قسمت برسيد ، چون يا برد مي سوزد يا شما ! بنابراين اگر مبتدي هستيد در مرحله ي سوم خوب تمركز كنيد و شبيه سازي ها را با دقت انجام دهيد. چرا كه اگر كسي شبيه سازي را خوب ياد گرفته باشد ، ديگر كار زيادي نمي ماند مگر وصل كردن به رايانه و پروگرام كردن و اين جور چيز ها كه خيلي طول نمي كشد.

5- يك برد مدار چاپي براي FPGA دلخواهتان طراحي كنيد ، و از آن لذت ببريد. كار كردن روي برد كه خودتان طراحي كرده ايد خيلي جذاب تر از بردهاي آماده است.

6- پروژه هاي مختلف را به صورت اختصاصي روي يك برد آماده طراحي و تست كنيد و سپس در صورت صحت از عملكرد مدارتان ، يك برد اختصاصي براي پروژه ي مورد نظر بسازيد. مثلاً در بعضي كارها كه فركانس بالا است ، اولاً بايد يك كلاك مناسب به سيستم بدهيد و ثانياً خروجي هايي را كه به واحد هاي ديگر مي دهيد بايد داراي كوتاه ترين مسي باشند تا طول سيم زياد نشود (سيم ها آنتن نشوند) و هر دوي اينها ميسر نمي شود مگر با طراحي برد مدار چاپي اختصاصي . در اين مورد توصيه مي شود از نرم افزار Protel DXP استفاده كنيد.
* * * * * *
اما تفاوت بين زبان هاي توصيف سخت افزار و زبان هاي نرم افزاري : زبان هاي نرم افزاري در واقع به صورت گام به گام دستورات را اجرا مي كنند و يك اشاره گر خط فرمان داند كه دستور فعلي را خوانده و براي اجرا به سيستم پردازش كننده مي دهد. مثلاً برنامه ي زير :
دستور 1 ;
دستور 2 ;
دستور 3 ;
ابتدا دستور اول خوانده و اجرا مي شود ، بعد از اتمام اجراي دستور 1 ، دستور 2 خوانده مي شود و اجرا ميشود و همينطور الي آخر. (البته بعضي زبان ها مانند C#,Ada مي توانند همزمان چند دستور را نيز اجرا كنند كه به اين تكنيك ، مولتي تردينگ مي گويند كه يك حالت خاص است و آن هم كامل نيست و به نوعي مانند TDM در مخابرات است) . امّا زبان هاي توصيف سخت افزار ، اين زبان ها در واقع مسيرهاي داده را به صورت موازي با يكديگر ترسيم مي كنند ، به عبارتي ورودي ها به محض وارد شدن ، همزمان با هم ادامه ي مسير مي دهند تا به خروجي برسند ، و نكته در اينجاست : همزمان با هم ، مثلا همان برنامه ي بالا اگر Verilog بود هر سه دستور با هم و همزمان اجرا مي شدند و پيش مي رفتند .
براي كساني كه آشنا نيستند در آينده توضيح مفصل در اين زمينه مي آيد .
* * * * * * ** * * * * * ** * * * * * ** * * * * * *
آنچه در قسمت بعدي خواهد آمد :
ساختار دروني FPGA ها و مقدمه اي بر زبان توصيف سخت افزار Verilog

:gol: سعادت در دو چيز است : تشخيص وظيفه ، انجام وظيفه :gol:
 
آخرین ویرایش:

Reza_Mahmoodi

عضو جدید
Verilog HDL-3

Verilog HDL-3

[FONT=&quot]با سلام و خسته نباشيد[/FONT][FONT=&quot] .

[/FONT][FONT=&quot]قسمت سوم : ساختار كلّي[/FONT][FONT=&quot] FPGA [/FONT][FONT=&quot]و مقدمه اي بر[/FONT][FONT=&quot] Verilog HDL
[/FONT][FONT=&quot]منبع (جزوه ي دكتر محسن صانعي ، مدرس درس مدار منطقي پيشرفته، دانشگاه شهيد باهنر كرمان[/FONT][FONT=&quot])

در نگاه اول (ظاهري) FPGA مانند ساير تراشه هاي ASIC مثل ميكروكنترلرها به نظر مي آيد كه تعداد پايه هاي ورودي و خروجي بيشتري دارد، اين سخن تا حدي درست است ! زيرا FPGAهاي جديد در واقع هم FPGA هستند و هم ASIC ، به اين معني كه فقط از گيت ها و سوئيچ ها و wireها تشكيل نشده اند بلكه بلوك هاي استاندارد آماده اي نيز در آنها تعبيه شده است ، مثلاً Virtexها از اين جمله هستند ، بعضي از اين بلوك ها از اين قرارند : بلوك هاي مديريت كلاك ، بلوك هاي RAM (حافظه) ، بلوك هاي آماده ي DSP (براي پردازش سيگنال ، شامل ضرب كننده ها و متوسط گيرها و ...) و . . .

در اينجا فعلاً كاري با بلوك هاي اضافه نداريم ، و توجهمان را روي چگونگي كار با گيت ها و ساختار كلّي اين قسمت متمركز مي كنيم ، چنانچه در اين عكس :
http://www.fpgacentral.com/files/u1/fpga.jpg
نيز معلوم است ، FPGA از بلوك هاي منطقي قابل برنامه ريزي يا Programable Logic Block (كه در اين تصوير مشكي رنگ هستند) و يك سري سيم هاي افقي و عمودي كه رابط بين اين بلوك هاي منطقي هستند تشكيل شده است و خروجي را از طريق پايه هاي IO در اختيارتان مي گذارد ، البته فقط اين نيست ، كل كاري كه شما انجام مي دهيد تا FPGA را برنامه ريزي كنيد ، مشخص كردن چگونگي سيم كشي بين بلوك هاي منطقي است ، چنانچه شكل زير نشان مي دهد :
http://www.ir-micro.com/pict/fpga_002.gif
اين وظيفه بر عهده ي بلوك هاي اتصال يا Connection Blocks (كه در شكل يا حرف C نشان داده شده اند و رابط بين بلوك هاي منطقي هستند) و سوئيچ ها (كه در شكل با حرف S مشخص شده اند و رابط بين بلوك هاي اتصال مي باشند) است.
[/FONT][FONT=&quot]Connection Block[/FONT] و Switchها نيز از تعدادي ترانزيستور ساخته شده اند كه كه وقتي به گيت آنها ولتاژي اعمال مي شود ، درين و سورس را به هم متصل مي كنند و به اين ترتيب يك مسير مي سازند ، پروگرام كردن نيز در واقع صفر و يك دادن به گيت همين ترانزيستورهاست.
بلوك هاي قابل برنامه ريزي نيز خود از چندين قسمت ديگر به نام Slice تشكيل شده اند كه هر اسلايس نيز از چندين مالتي پلكسر ، فليپ فلاپ ، LUT و ... تشكيل شده است ،
اگر نگاهي به عكس آواتار فعلي بنده بيندازيد (البته اگر زماني كه شما اين جمله را مي خوانيد عوضش نكرده باشم !) بالاي عكس تفنگ ، محتويات يك اسلايس را نشان مي دهد ، كه البته اين مربوط به FPGA هاي شركت Xilinx است.
در صورت علاقه جزئيات بيشتر در اين زمينه را مي توانيد با يك جستجو پيدا كنيد ، براي طراحي و تست يك برنامه دانستن همين مقدار از جزئيات كافي است.

******************
مقدمه اي بر Verilog HDL
اين زبان در سال 1983 بر اساس زبان C ولي سخت افزاري ، مطرح شد و از آن به بعد استانداردهاي جديدتر آن نيز به بازار آمده اند ، مثلاً استاندار 1998 و 2001 ،
به گفته ي استاد ارجمندم دكتر صانعي ، يكي از استانداردنويس هاي اين زبان آقاي پروفسور زين العابدين نوابي ، مولف كتاب Verilog Digital System Design است.
قالب كلّي اين زبان چنين است :
module modulename (input var, output var)1
2 دستورات
endmodule3
يعني اصلي ترين جزء اين زبان ماژول ها هستند كه با كلمه ي module (حروف كوچك) شروع مي شود و به كمه ي endmodule ختم مي شود .
ورودي و خروجي هاي هر ماژول بعد از كلمه ي module تعريف مي شوند و با حرف كاما از يكديگر متمايز مي گردند.
براي تعريف ورودي از كمه ي input و براي تعريف خروجي از كلمه ي output استفاده مي شود. بعد از اين دو كلمه با يك فاصله نام متغير ورودي يا خروجي نوشته مي شود.
(نام ماژول ها و نام متغر ها دلخواه است و از قواعد ساير زبان C پيروي مي كند يعني مثلاً نام متغير با ! شروع نشود.)
توجه كنيد در اين زبان بزرگ و كوچك بودن حروف اهميت دارد ، آخر هر دستور نيز علامت سمي كالن مي آيد ، حتي تعريف ماژول ،
براي تعريف تعداد بيت ها از كروشه استفاده مي شود . sها را براي اينكه ترتيب حروف به هم نخورد گذاشتم ، يعني الكي هستند .
مثال :
ssssssssssssss input [7:0] a,b ; ssssssssssssssssssss
كه در اين مثال دو متغير a و b هشت بيتي و بعنوان ورودي تعريف شده اند.
فعلاً همين قدر بسه ، خسته شدم ، . . .
موفق و پيروز باشيد

آنچه در قسمت بعد خواهد آمد : جزئيات بيشتر و نوشتن چند برنامه ساده به زبان Verilog

:gol: سعادت در دو چيز است : تشخيص وظيفه ، انجام وظيفه :gol:
 
آخرین ویرایش:

robotali

عضو جدید
با اجازه اساتید می خوام کتاب " طراحی مدارهای دیجیتال با Verilog" رو پیشنهاد کنم که مطالعه کنید...

مولف(مترجم): هادی پرنده افشار، انتشارات نص

البته یک مقدار کمیابه...
:gol:
 

BEST lIFE

عضو جدید
salam, baraye yadgiriye FPGA tosiye mikonam ke barname nevisiye Gate Level Verilog ro yad begirin aval,chon az hame sadetare.
movafagh bashid.
 

پیوست ها

  • Verilog Tutorial.pdf
    731.1 کیلوبایت · بازدیدها: 2
  • Fpga[Techno-Electro.com].pdf
    1.7 مگایابت · بازدیدها: 2

Reza_Mahmoodi

عضو جدید
با سلام و خسته نباشید
ببخشید که کمی دیر شد ، خدمت سربازی بودم و تازه امروز آموزشی تمام شد الحمدلله، انشاءالله تا دو الی سه روز آینده یک فایل آپلود خواهم کرد با عنوان : خلاصه ی Verilog از ابتدا تا انتها و بعد از آن نیز جزئیات را با یکدیگر مطرح خواهیم کرد .
موفق و پیروز باشید . . .
 

Reza_Mahmoodi

عضو جدید
با سلام و خسته نباشید
داشتم چند تا اسلاید آموزشی می نوشتم تا بزارم اینجا که یهو با یک سایت خیلی عالی برای یادگیری زبان Verilog آشنا شدم ، این سایت علاوه بر آموزش حاوی مثال های خوب و کاربردی هم هست ، در ضمن خیلی شیوا مطلب رو به خواننده رسونده مثلاً این قسمت رو بخونید :
Many engineers who want to learn this language, very often ask this question, how much time will it take to learn Verilog? Well my answer to them is "It may take no more than one week, if you happen to know at least one programming language".
توصیه می کنم به این سایت سر بزنید ، خیلی جذاب و جامع توضیح داده ... از این به بعد آموزش رو می سپاریم به این سایت و خودمون بیشتر به تحلیل و سنتز مثال ها با استفاده از نرم افزارها و همچنین طراحی های جدید می پردازیم .

آدرس :
http://www.asic-world.com/verilog/veritut.html

در ضمن یک نسخه هم از مطالب این سایت به صورت PDF در دست ساخت است که به محض تموم شدن می گذارم.
موفق باشید.
 

ehsanstr

عضو جدید
من در مورد اون هیچی نمی دونم اصلا چیه؟؟؟؟
مطالب هم ***** شده
 

.ava.

عضو جدید
برنامهALU 8BIT_VHDL بر روی FPGA

برنامهALU 8BIT_VHDL بر روی FPGA

برنامهALU 8BIT_VHDL بر روی FPGA

ALU_VHDL.VHd.jpgALU_VHDL.VHd.jpg
 

lordsuperboys

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

dadash masoud

عضو جدید
ميشه به طور خلاصه اين چيپو با ميكرو هايي مثل avr,at megaمقايسه كنيد.
ممنون
 

lordsuperboys

عضو جدید
سلام به دوستان عزیز دوستان می خواستم نظرتونو در مورد بوردای اموزشی بدونم ایا به صلاح هست که تهییه کنیم بردهای اماده البته یکی خوبش هس قیمتش فوق العاده بالاس (با مادربورد مقایسه کنید)این برد http://www.dspcore.ir/ گرونه و این نسبتا متناسب http://istakit.com/product_info.php/products_id/64/pname/%D9%85%D8%A7%DA%98%D9%88%D9%84-S50
باز نظرتون بگین ممنون
 

lordsuperboys

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

dadash masoud

عضو جدید
مسعود جان تا اونجا که اطلاعات دارم فرقش با چیپای دیگه اونه که این یه نوع امه پردازنده است و شما اونو از صفر خودتون بر حسب باب میلتون برنامه ریزی می کنین و کارتون با گیت های منطقی هس و می تونین هر کدوم از اون پردازنه ها رو با این بسازین و بعد کار اونو برتون انجام بده ولی ارم و ... بثورت اماده روشون برنامه ریزی دارن و مثلا هر پایه یه کار براتون می کنه مثلا برا بلوتوث ارم پایه داره ولی تو fpga همچین پایه ای در اختیار ندارین و باید باهاش بسازین سرعت fpga نسبت به اونا بیشتره و ازاذی عمل بیشتری دارین اگه بازم توضیح خواستین در خدمتم
ممنون
ولي اينكه همه چيو خودت بايد طراحي كني كارو سخت تر نميكنه؟فكر كنم خط كدش هم بيشتر بشه
مثلن ما اين ترم 8051 ميخونديم چون چيپ قديمي تري بود برنامه نويسي سخت تري داشت ولي دوستم ميگفت مطمئن تر كار ميكنه.
 

lordsuperboys

عضو جدید
ببین عزیزم مسعود صرف حرفایی که زدم برا این بود که بهت دید بدم بله کارو خیلی سختر می کنه مثال می زنم کسی که تو avr حرفه ای شاید وقتی اولین بار fpga و ببینه شوکه یشه از پیچدگیاش ولی خوب موارد کاربردی این پردازنده ها همون طور که بالا اشاره کردم منحصر به فرده و صرف سخت بودن کاری مانع انجام یا مسبب کنار گذاریش نمی شه و هر کی بسته به نیازش جلو می ره امیدوارم یه چیزای تونسته باشم بگم
 

Similar threads

بالا