ورود به حساب ثبت نام جدید فراموشی کلمه عبور
برای ورود به حساب کاربری خود، نام کاربری و کلمه عبورتان را در زیر وارد کرده و روی «ورود به سایت» کلیک کنید.





اگر فرم ورود برای شما نمایش داده نمیشود، اینجا را کلیک کنید.









اگر فرم ثبت نام برای شما نمایش داده نمی‌شود، اینجا را کلیک کنید.









اگر فرم بازیابی کلمه عبور برای شما نمایش داده نمی‌شود، اینجا را کلیک کنید.





کاربران برچسب زده شده

صفحه 1 از 2 12 آخرین
نمایش نتایج: از 1 به 10 از 20
  1. #1
    2007/10/14
    تهران
    1,335
    38

    معرفی و آموزش نرم افزار System Generator

    با سلام. به درخواست یکی از دوستان و بنا به قول قبلی قصد دارم در این تاپیک نرم افزار System Generator را معرفی کنم. میتونید سوالات رو در همین تاپیک بپرسین و تا جایی که بلد باشم جواب میدم. چون خودم ورژن 14.7 نصب کردم. توضیحات بر اساس این ورژن خواهد بود.

    System Generator یکی از برنامه های نرم افزار Xilinx ISE هست که با نصب نسخه های System Edition یا DSP Edition به همراه Project Navigator (همون محیط کدنویسی معمولی) و بقیه ابزارها (مثل ChipScope، ISim، PlanAhead و ...) نصب میشه.

    System Generator یا به اختصار SysGen در محیط ******** نرم افزار Matlab اجرا میشه و به همون صورت که در سیمولینک به صورت بلوک دیاگرامی هست، میشه از این برنامه استفاده کرد و بلوک ها رو کنار هم چید و به هم وصل کرد تا به خواسته مورد نظر رسید. بنابراین لازمه کار با SysGen اینه که با متلب و مخصوصاً محیط سیمولینک آشنایی داشته باشید.

    در این پست بیشتر در مورد کلیات صحبت میشه و در آینده در پست های بعدی که به تدریج اضافه میشه در مورد نحوه کار و نکات بحث میشه.

    در ضمن سایت Xilinx هم منابع خوبی داره که در صورتی که با انگلیسی مشکلی ندارید توصیه میکنم از این منابع حتماً استفاده کنید.

    یک مثال از محیط SysGen: (برای تصویر بزرگ روی عکس کلیک کنید)

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت



    هر چند میشه در هر زمینه در طراحی بر اساس FPGA از SysGen استفاده کرد ولی مهم ترین استفاده SysGen در کارهای پردازشی (DSP) است. SysGen با ساده کردن استفاده از بلوک های پردازشی و انواع داده Fixed Point و Floating Point و ساده شدن شبیه سازی با کمک گرفتن از امکانات سیمولینک گزینه ایده آل برای کارهای پردازشیه، طوری که کاری که با کدنویسی با سختی های زیادی از جمله کار با انواع داده و دردسر تبدیل نوع، سختی شبیه سازی و طولانی بودن کار کدنویسی همراهه در محیط SysGen به راحتی امکان پذیره.

    تعدادی از مثالهایی که پیاده سازی اونها با استفاده از SysGen توصیه میشه:
    - محاسبه فرمول که پیچیده تر از چند عمل اصلیه و مخصوصاً ضرب و تقسیم توی فرمول داره.
    - محاسبات دارای مقادیر اعشاری مخصوصاً وقتی که دقت محاسبه مهمه یا تعداد بیت مورد نیاز در خروجی هر مرحله برای قسمت صحیح و اعشار نسبت به ورودی عوض میشه.
    - محاسبات دارای اعداد مختلط
    - FFT و معکوس FFT
    - فیلترهای FIR
    - محاسبات Multi-Rate که نیاز به Downsample یا Upsample دارند
    - حافظه ای که نیاز به مقدار اولیه داره و محاسبه مقدار اولیه و تشکیل فایل ضرایب با استفاده از روش های معمول کدنویسی سخت و زمان گیره.
    - وقتی ساختن کد تست (Test bench) سخت و زمان گیره مثلاً سیگنال ورودی میتونه شکل های مختلف داشته باشه که درست کردنش با کدنویسی مشکله ولی میشه به راحتی در متلب با یک کد ساده یا چند بلوک در سیمولینک ساخت.
    - شبیه سازی های بزرگ و وقت گیر، شبیه سازی در SysGen خیلی سریع تر و راحت تره.

    همین طور که در مثال های بالا میبینید استفاده از SysGen به چند صورت ممکنه:
    1- کل برنامه در SysGen پیاده سازی بشه از جمله تخصیص پین ها و ساختن فایل bit.
    2- قسمتی از برنامه در SysGen و قسمت دیگه با استفاده از کدنویسی انجام بشه و فایل SysGen به عنوان یک Component به صورت Black Box به کد اضافه بشه.
    3- کل برنامه با استفاده از کدنویسی پیاده بشه ولی شبیه سازی با استفاده از SysGen انجام بشه.

    تذکر: تا جایی که من با این نرم افزار کار کردم، بدون باگ نیست و بعضی مواقع در کامپایل با مشکل مواجه میشه، یا هنگ میکنه یا ارور میده و متلب بسته میشه که معمولاً پشت سر هم اتفاق میفته و باعث اعصاب خردی میشه ولی باعث نمیشه که برنامه درست کار نکنه. در این موارد خونسردی خودتون رو حفظ کنید و به راه حل هایی که در آینده میگم مراجعه کنید.

    ================================================== ========================================
    پ. ن:
    چون احتمالاً بعضی از دوستان قصد نصب برنامه رو دارن چند نکته لازم رو توی همین پست میگم:
    برای اجرای SysGen لازمه هر دو نرم افزار ISE (نسخه هایی که ذکر شد) و Matlab روی سیستم نصب شده باشن. در

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

    میتونید ببینید که چه ورژن هایی از این دو نرم افزار با هم سازگار هستند.
    در هنگام نصب ISE اگه قبلاً متلب با ورژن سازگار نصب شده باشه پنجره ای به شکل زیر باز میشه که برای لینک کردن SysGen با Matlab هست، در صورتی که متلب بعد از ISE نصب بشه، در اولین اجرای SysGen، این پنجره ظاهر میشه که با انتخاب Matlab سازگار با ISE، ارتباط نرم افزارها برقرار میشه و در تولباکس سیمولینک چند کتابخانه مربوط به Xilinx اضافه میشه که بلوک های قابل پیاده سازی در FPGA با پس زمینه آیکن Xilinx مشخص شدن.

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت



    مهم: در صورتی که Vivado هم نصب شده لازمه که در اینجا گزینه IDS انتخاب بشه چون گزینه دیگه مربوط به Vivado هست و در صورتی که انتخاب بشه چاره ای جز حذف نرم افزار برای اصلاح اشتباه نیست (از این مورد کاملاً مطمئن نیستم).
    لطفاً برای انجام پروژه های دانشجویی پیام خصوصی نفرستید.
    لطفاً سؤالاتی که در انجمن قابل طرح شدن هستند پیام خصوصی نکنید.
    با تمام وجود گناه کرديم اما نه نعمتش را از ما گرفت نه گناهان ما را فاش کرد اطاعتش کنيم چه مي کند؟"دکتر شريعتي"
    اگر جايي که ايستاده ايد را نمي پسنديد، عوضش کنيد شما درخت نيستيد!! "پاسكال"
    يا به اندازه ي آرزوهايت تلاش کن يا به اندازه تلاشت آرزو کن. "شکسپير"
  2. #2
    2008/06/19
    32
    3

    پاسخ : معرفی و آموزش نرم افزار System Generator

    سلام
    دوست عزیز چرا ادامه نمیدین؟
  3. #3
    2007/10/14
    تهران
    1,335
    38

    پاسخ : معرفی و آموزش نرم افزار System Generator

    سلام. انشاالله وقت آزاد بیشتری پیدا کنم به زودی ادامه میدم. در صورتی که پیشنهادی برای مباحث آینده دارین میتونید مطرح کنید تا در نظر بگیرم.
    لطفاً برای انجام پروژه های دانشجویی پیام خصوصی نفرستید.
    لطفاً سؤالاتی که در انجمن قابل طرح شدن هستند پیام خصوصی نکنید.
    با تمام وجود گناه کرديم اما نه نعمتش را از ما گرفت نه گناهان ما را فاش کرد اطاعتش کنيم چه مي کند؟"دکتر شريعتي"
    اگر جايي که ايستاده ايد را نمي پسنديد، عوضش کنيد شما درخت نيستيد!! "پاسكال"
    يا به اندازه ي آرزوهايت تلاش کن يا به اندازه تلاشت آرزو کن. "شکسپير"
  4. #4
    2008/06/19
    32
    3

    پاسخ : معرفی و آموزش نرم افزار System Generator

    خیلی ممنون از لطفتون
    با توجه به اینکه فرصتتون کمه اگر جسارت نباشه پیشنهادم اینه که یک پروژه ساده (به انتخاب خودتون با توجه به زمانتون) انتخاب بشه و کل برنامه در SysGen پیاده سازی بشه از جمله مراحل طراحی، شبیه سازی، تخصیص پین ها و ساختن فایل bit و نهایتا انتقال به FPGA. شاید اینجوری بشه به آموزش سرعت داد و از حاشیه دور شد.البته استاد شمایین و صاحب اختیار ولی مطمئنا یادگیری این موضوع به درد خلییا خواهد خورد از جمله خود بنده.
  5. #5
    2014/07/25
    80
    5

    پاسخ : معرفی و آموزش نرم افزار System Generator

    واقعا عالی
    همانطور دوستان گفتند اگر یه پروژه کوچیک هم اجرا کنید نورالنور می شه :wow:
  6. #6
    2007/10/14
    تهران
    1,335
    38

    پاسخ : معرفی و آموزش نرم افزار System Generator

    فکر می کنم بهتره اول تعدادی از بلوک های مهم SysGen معرفی بشن بعد به تدریج از کارهای ساده به سمت کارهای پیچیده تر بریم.
    ---------------------------------------------------------------------------------------------------------------------------------------------------------------------
    1- بلوک System Generator:
    قرار دادن این بلوک در طرح برای معرفی دیگر بلوک های SysGen به سیمولینک الزامی است.
    با دبل کلیک کردن روی این بلوک، صفحه Properties باز می شود.
    گزینه های این بلوک به صورت زیر است:
    1- Compilation:
    گزینه های مختلفی برای این قسمت هست که ما از NGC Netlist برای درست کردن یک کامپوننت برای استفاده در کد HDL در ISE و از BitStream برای ساختن مستقیم فایل bit برای پروگرم کردن FPGA استفاده می کنیم.
    2- Part:
    در این قسمت پارت FPGA رو مشخص می کنید.
    3- Synthesis Tool:
    ابزار سنتز به صورت پیشفرض XST هست، در صورتی که ابزار Synplify هم دارید میتونید انتخاب کنید.
    4- Hardware Description Language:
    زبانی که فایل های کامپایل شده نهایی به اون زبان ترجمه میشن. (پیشفرض من VHDL هست).
    5- Target Directory:
    پوشه ای که بعد از Generate کردن، فایلهای کامپایل شده و تولید شده در اون پوشه قرار میگیره. در صورتی که قراره فایل SysGen به عنوان بلوک در کد HDL استفاده بشه، بهتره پوشه حاوی پروژه ISE رو انتخاب کنید.
    6- Project Type:
    بذارید روی Project Navigator باشه.
    7- (FPGA Clock Period (ns در تب Clocking:
    در این قسمت کلاک کامپوننت SysGen رو مشخص کنید (بر حسب نانوثانیه). این قسمت برای تنظیمات استفاده از DCM ها استفاده میشه.
    8- Symulink System Period:
    در حالت پیشفرض روی یک ثانیه است که معمولاً نیازی به تغییر نیست و فقط برای شبیه سازی استفاده میشه.

    2- بلوک WaveScope:
    این بلوک که در زیرشاخه Tools از Xilinx Blockset قرار گرفته، برای مشاهده نتیجه شبیه سازی به صورت شکل موج مشابه Isim استفاده میشه. زمان شبیه سازی (بر حسب ثانیه) در کادر مشخص شده در تصویر زیر وارد میشه و با زدن کلید Run که به رنگ سبز مشخصه، شبیه سازی شروع میشه.
    توجه: زمان شبیه سازی بر اساس پارامتر Symulink System Period (قسمت 8 بلوک System Generator) هست و در صورتی که در اونجا یک ثانیه وارد شده باشه، هر کلاک در پنجره WaveScope یک ثانیه هست و به کلاک وارد شده در قسمت FPGA Clock Period (قسمت 7 بلوک System Generator) ربطی نداره.
    WaveScope تنظیمات خاصی نداره و با دبل کلیک کردن روی این بلوک، پنجره شبیه سازی باز میشه که با زدن کلید + (Add Selected Nets)، سیگنالهای انتخاب شده در طرح به پنجره اضافه میشه. در صورت نیاز بعداً در قسمت شبیه سازی، توضیحات لازم درباره بلوک میاد.

    3- بلوک های پورت های ورودی و خروجی:
    برای اضافه کردن پورت های ورودی و خروجی، از این بلوک ها که در زیرشاخه Basic قرار داره استفاده میشه.
    بلوک Gateway in: با دبل کلیک کردن روی این بلوک صفحه مشخصات به صورت زیر باز میشه:
    با توجه به این که بیشتر بلوک ها در تب Output، پارامترهای مشابه دارند، این قسمت به صورت کامل توضیح داده میشه و برای بقیه بلوک ها تکرار نمیشه.
    در قسمت Output Type مشخص می کنید که نوع ورودی چی باشه:
    1- Boolean: معادل std_logic در VHDL. برای ورودی یک بیتی استفاده میشه.
    2- Fixed Point: مقدار ممیز ثابت.
    3- Floating Point: مقدار ممیز شناور.
    دو نوع ممیز ثابت و ممیز شناور در ادامه به تفصیل بحث میشه.
    در قسمت Quantization:
    1- Truncate: در صورتی که در ورودی بلوک مقداری اعشاری تولید بشه که با نوع خروجی بلوک، تعداد بیت کمتری داشته باشه، بیت های اضافی دور انداخته میشه.
    2- Round: مقدار کم ارزش ترین بیت خروجی بلوک، با توجه به بیت بعد در ورودی مشخص میشه. در صورت گرد کردن مقدار خروجی، منابع مصرف میشه در حالتی که با Truncate هیچ منبع اضافه ای مصرف نمیشه.
    در قسمت Overflow:
    1- Wrap: در صورتی که مقدار ورودی بلوک از حداکثر مقدار خروجی بیشتر باشه، بیت های پرارزش ورودی حذف میشن. این گزینه هیچ منبع اضافه ای مصرف نمیکنه.
    2- Saturate: در صورت overflow، مقدار خروجی به بالاترین مقدار تنظیم میشه. این گزینه از منابع FPGA استفاده میکنه.
    3- Flag as error: در صورت overflow خطا رخ میده، در این صورت باید نوع خروجی بلوک یا خروجی بلوک های قبلی طوری اصلاح بشه که باعث overflow نشه.
    قسمت Sample Period:
    زمان نمونه برداری از خروجی بلوک رو تعیین میکنه که نمیتونه از مقدار Symulink System Period (در قسمت 8 بلوک System Generator) کمتر باشه. مثلاً اگه مقدار Symulink System Period یک ثانیه و مقدار Sample Period بلوک 2 ثانیه باشه، مقدار خروجی بلوک هر دو کلاک یک بار تغییر میکنه و تغییرات سریع تر دیده نمیشه.
    ---------------------------------------------------------------------------------------------------------------------------------------------------------------------
    انواع ممیز ثابت و ممیز شناور:
    ممیز ثابت: با نمایش اعداد صحیح نامنفی به صورت دیجیتال آشنایی دارید، مثلاً عدد 10 در سیستم دهدهی در سیستم باینری به صورت 1010 نشون داده میشه، همچنین برای نمایش اعداد منفی از مکمل 2 اون عدد استفاده میشه به علاوه یک بیت علامت مثلاً مقدار 10- به صورت 10110 نشون داده میشه، که از نات کردن بیت های 10 و سپس جمع کردن با 1 و در نهایت اضافه کردن بیت علامت در سمت چپ بیت پرارزش به دست آمده به این ترتیب برای بیان اعداد به صورت علامت دار (Signed) به یک بیت اضافی نسبت به عدد بدون علامت (Unsigned) نیاز داریم. برای نمایش اعداد اعشاری هم کافیه که سمت راست بیت کم ارزش که ارزش 2 داره، علامت ممیز رو بذاریم و بیت های اعشار رو قرار بدیم به این صورت که اولین بیت سمت راست ممیز ارزش 0.5 یا 2 داره، دومی ارزش 0.25 یا 2 و به همین ترتیب. مثلاً برای نمایش مقدار 10.32 به صورت بدون علامت حداقل به 4 بیت برای قسمت صحیح نیاز داریم و برای نمایش مقدار اعشاری در صورتی که از یک بیت استفاده کنیم مجبوریم به مقدار 10.5 گرد کنیم و در صورتی که از دو بیت استفاده کنیم میتونیم به مقدار 10.25 گرد کنیم و به همین ترتیب با تعداد بیت بیشتر، دقت رو بیشتر کنیم مثلاً با 7 بیت اعشار به مقدار 10.3203125 میرسه که بسته به این که بخوایم چقدر دقت داشته باشیم و چقدر بیت مصرف کنیم، تعداد بیت های اعشار رو انتخاب می کنیم به این نوع عدد (4 بیت صحیح و 7 بیت اعشار و بدون علامت) fixed-point unsigned 11.7 میگیم چون کلاً 11 بیت هست که 7 تاش اعشاره، برای نمایش همین عدد به صورت علامت دار یک بیت به کل تعداد بیت ها اضافه میشه یعنی نیاز به نوع signed 12.7 داریم.
    ممیز شناور: وقتی روی سیگنال ها عملیات مختلف و پیچیده ای انجام میشه و رنج مقادیر خیلی باز هست طوری که ممکنه مقادیر اعشاری کوچک تا مقادیر صحیح بزرگ با علامت مثبت یا منفی داشته باشیم، استفاده از نوع ممیز ثابت سخت میشه، در این مواقع بهتره از نوع ممیز شناور استفاده کنیم. نوع ممیز شناور یک نوع داده علامت داره که همون طور که از اسمش پیداست محل ممیز متغیره که باعث میشه Dynamic Range خیلی خوبی داشته باشه. دو نوع متداول Single (تعداد بیت = 32) و Double (تعداد بیت = 64) در Xilinx پشتیبانی میشه. برای کار با این نوع داده نیازی به آشنایی با نحوه کار اون نیست، در صورت تمایل به آشنایی با این نوع داده میتونید به

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

    مراجعه کنید.
    ---------------------------------------------------------------------------------------------------------------------------------------------------------------------
    بلوک Gateway out::
    برای اضافه کردن پورت خروجی از این بلوک استفاده میشه. این بلوک تنظیمات خاصی نداره و تعداد بیت های خروجی هم با توجه به سیگنالی که بهش وصل شده به صورت خودکار تعیین میشه.
    ---------------------------------------------------------------------------------------------------------------------------------------------------------------------
    در پست های آینده بلوک های Constant، BitBlasher، Concat، Convert، Counter، Delay، Inverter، Logical، Mux، Register، Relational و Slice در قالب مثال های ساده معرفی میشن.
    لطفاً برای انجام پروژه های دانشجویی پیام خصوصی نفرستید.
    لطفاً سؤالاتی که در انجمن قابل طرح شدن هستند پیام خصوصی نکنید.
    با تمام وجود گناه کرديم اما نه نعمتش را از ما گرفت نه گناهان ما را فاش کرد اطاعتش کنيم چه مي کند؟"دکتر شريعتي"
    اگر جايي که ايستاده ايد را نمي پسنديد، عوضش کنيد شما درخت نيستيد!! "پاسكال"
    يا به اندازه ي آرزوهايت تلاش کن يا به اندازه تلاشت آرزو کن. "شکسپير"
  7. #7
    2007/10/14
    تهران
    1,335
    38

    پاسخ : معرفی و آموزش نرم افزار System Generator - مثال 1

    در این مثال ساده دو سیگنال ساده از طریق بلوک های سیمولینک میسازیم و به ورودی ها میدیم و در WaveScope مشاهده می کنیم.
    یکی از مزایای SysGen نسبت به HDL ساده و سریع بودن شبیه سازی هست. در این جا سه بلوک پرکاربرد سیمولینک که در شبیه سازی استفاده میشن معرفی می کنم.
    1- Constant: این بلوک در زیرشاخه Sources کتابخانه ******** قرار داره. پارامتر این بلوک یک مقدار اسکالره که میتونه به صورت فرمول هم نوشته بشه مثلاً
    [code=matlab]1/sqrt(2)[/code]
    2- Pulse Generator: این بلوک هم در زیرشاخه Sources کتابخانه ******** قرار داره. با استفاده از این بلوک میشه پالس ساخت. پارامترهای این بلوک شامل دامنه، دوره تناوب پالس (به ثانیه) و duty cycle (به درصد) و فاز اولیه است.
    3- Signal from Workspace: این بلوک در زیرشاخه Sources کتابخانه DSP System Toolbox بهترین بلوک برای ورودی که نمیشه با مقدار ثابت و پالس ساخت هست.
    در پارامتر Signal میشه برداری که به عنوان ورودی قصد داریم برای شبیه سازی استفاده کنیم می نویسیم، همچنین میشه سیگنال رو در متلب در یک script یا در command window ساخت و فقط اسم اون رو در این قسمت وارد کرد.
    پارامتر ...Form output: این پارامتر مشخص می کنه بعد از تموم شدن نمونه های بردار مشخص شده در قسمت Signal، مقدار صفر وارد بشه، آخرین مقدار نگه داشته بشه یا کل بردار از اول تکرار بشه.

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

    در مثال زیر خروجی بلوک های Signal from Workspace و Pulse Generator با استفاده از WaveScope نمایش داده شدن.

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت


    برای اتصال بلوک های سیمولینک کافیه از محل پورت بلوک اول به سمت پورت بلوک دوم درگ کنید و یا روی بلوک اول کلیک کنید، کلید Ctrl رو پایین نگه دارین و روی بلوک دوم کلیک کنید.
    برای انتخاب همزمان چند بلوک یا چند سیگنال (خط ارتباطی بین بلوک ها) از کلید Shift استفاده میشه و در صورتی که بلوکها/سیگنالها به هم نزدیک هستند میتونید با استفاده از درگ کردن با شروع از یک نقطه خالی روی بلوک/سیگنال ها اون ها رو انتخاب کنید.
    برای باز کردن پنجره WaveScope روی بلوک اون دبل کلیک کنید.
    برای اضافه کردن سیگنالها به پنجره شبیه سازی، ابتدا سیگنال ها رو انتخاب کنید و بعد در پنجره WaveScope روی علامت + (Add Selected Nets) کلیک کنید.
    برای عوض کردن محل نمایش سیگنالها روی قسمت اسم سیگنال مورد نظر کلیک کنید و به محل مورد نظر درگ کنید.
    برای حذف یک سیگنال از WaveScope روی سیگنال کلیک کنید و کلید Del روی صفحه کلید رو بزنید.
    برای اسم دادن به یک سیگنال روی خط ارتباطی بین بلوک ها دبل کلیک کنید و اسم مورد نظر رو تایپ کنید، همچنین با دبل کلیک روی اسم سیگنال در پنجره WaveScope میتونید اسم سیگنال رو عوض کنید. همیشه سیگنالی که در سیمولینک انتخاب شده هست در WaveScope به صورت هایلایت شده نشون داده میشه (در حالت انتخاب هست) و برعکس.
    برای انتخاب نوع سیگنال و رنگ روی سیگنال دبل کلیک کنید تا پنجره زیر باز بشه:

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت


    در این پنجره میتونید نوع نمایش رو به صورت باینری، هگزادسیمال یا دسیمال تعیین کنید. با انتخاب analog به جای نمایش مقدار عددی، نمودار سیگنال نشون داده میشه و برای سیگنالهای بدون علامت هم لازمه که تیک گزینه Sign-Magnitude برداشته بشه.

    در این مثال، پارامترهای بلوک های Signal from Workspace و Pulse Generator در تصویر مشخصه، ورودی i_trig به صورت boolean و ورودی i_data به صورت Fixed-Point علامت دار 16 بیتی با 14 بیت اعشار هست که به اختصار از این به بعد به صورت fix 16.14 نشون میدیم. (برای بدون علامت ufix)

    تفسیر پارامترهای بلوک Pulse Generator:
    دوره تناوب = 10 ثانیه . این پالس هر ده ثانیه (معادل 10 کلاک) تکرار میشه.
    duty cycle= 10%. در 10% کل دوره تناوب مقدار پالس 1 هست (=1ثانیه =1کلاک)
    Phase Delay = 0 (شروع پالس از اولین کلاک است و هیچ تأخیری ندارد).

    تفسیر پارامترهای بلوک Signal from Workspace:
    [code=matlab] Signal = sin(2*pi*0.005*[0:1000])[/code]
    یک سیگنال سینوسی با فرکانس 0.005 معادل با دوره تناوب 200 ثانیه.
    مقدار خروجی بعد از پایان سیگنال ورودی (1001 نمونه) روی Setting to Zero تنظیم شده که در نتیجه صفر میشه. در صورتی که روی cyclic repetition گذاشته بشه، سیگنال سینوسی تکرار میشه.

    در مثال بعد بلوک های Relational، Constant و Gateway out به طرح اضافه میشن.
    لطفاً برای انجام پروژه های دانشجویی پیام خصوصی نفرستید.
    لطفاً سؤالاتی که در انجمن قابل طرح شدن هستند پیام خصوصی نکنید.
    با تمام وجود گناه کرديم اما نه نعمتش را از ما گرفت نه گناهان ما را فاش کرد اطاعتش کنيم چه مي کند؟"دکتر شريعتي"
    اگر جايي که ايستاده ايد را نمي پسنديد، عوضش کنيد شما درخت نيستيد!! "پاسكال"
    يا به اندازه ي آرزوهايت تلاش کن يا به اندازه تلاشت آرزو کن. "شکسپير"
  8. #8
    2007/10/14
    تهران
    1,335
    38

    پاسخ : معرفی و آموزش نرم افزار System Generator - مثال 2

    اول نکته ای که فراموش کردم در پست قبلی اشاره کنم:
    در طراحی SysGen فقط باید از بلوک های Xilinx استفاده بشه. این بلوک ها با پس زمینه حرف X که لوگوی Xilinx هست مشخص شدن. استفاده از بقیه بلوک های سیمولینک صرفاً برای شبیه سازی مجازه. به همین دلیل برای دادن مقدار به پورت های ورودی از بلوک های معمولی سیمولینک استفاده میشه (نمیشه از بلوک های خود Xilinx استفاده کرد.)

    و اما مثال دوم:

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت


    در اینجا بلوک های Relational و Constant و Gateway out به طرح اضافه شدن.
    همون طور که در تصویر دیده میشه نوع داده i_data و Constant هر دو از نوع fix 16.14 هست، مقدار Constant یک تقسیم بر رادیکال 2 هست که با فرمت 14 بیت اعشار با این دقت نمایش داده شده.
    بلوک Relational به صورت =< استفاده شده یعنی هر وقت ورودی a بزرگتر یا مساوی ورودی b باشه، خروجی اون 1 و در غیر این صورت صفره.
    ورودی enable این بلوک فعال شده، با فعال شدن enable، خروجی باید حداقل یک تأخیر نسبت به ورودی داشته باشه (در بقیه بلوک هایی که enable دارن هم همینطوره) در نظر گرفتن این تأخیر در طراحی مهمه چون لازمه که خروجی های مختلف با هم همزمان باشن یا فاصله زمانی خاصی بین اونها رعایت بشه که در مثال های آینده خواهید دید.
    ورودی enable به i_trig وصل شده به این معنا که هر وقت مقدار i_trig باشه مقایسه انجام میشه در غیر این صورت بلوک Relational آخرین مقدار خروجی خودش رو نگه میداره.
    با اجرای این برنامه و تغییر محل کرسر، میتونید مقدار سیگنال i_data رو در قسمت های مختلف با مقدار constant مقایسه کنید و اثر ورودی enable رو ببینید. (برای انتخاب کرسر پایین پنجره در قسمتی که زمان نوشته شده کلیک کنید یا کلید c روی صفحه کلید رو بزنید و بعد کرسر رو به هر جا که میخواین درگ کنید).
    برای زوم مثبت و منفی در پنجره سیمولینک از کلید وسط موس استفاده کنید. برای جابجا شدن در صفحه سیمولینک، کلید وسط موس رو نگه دارید و درگ کنید. برای مشاهده کامل طرح کلید Space روی صفحه کلید رو بزنید.

    خروجی Relational به یک پورت خروجی متصل شده، SysGen تشخیص میده که در اینجا این خروجی باید Boolean باشه و نیازی به هیچ تنظیماتی توسط کاربر نیست. در صورتی که قصد دارین از برنامه bit file بگیرید میتونید شماره پایه FPGA مورد نظرتون رو در قسمت تنظیمات پورت های ورودی و خروجی وارد کنید.

    این برنامه یک برنامه کامل هست که میتونید برای تست، با دبل کلیک روی بلوک System Generator اون رو Generate کنید.
    لطفاً برای انجام پروژه های دانشجویی پیام خصوصی نفرستید.
    لطفاً سؤالاتی که در انجمن قابل طرح شدن هستند پیام خصوصی نکنید.
    با تمام وجود گناه کرديم اما نه نعمتش را از ما گرفت نه گناهان ما را فاش کرد اطاعتش کنيم چه مي کند؟"دکتر شريعتي"
    اگر جايي که ايستاده ايد را نمي پسنديد، عوضش کنيد شما درخت نيستيد!! "پاسكال"
    يا به اندازه ي آرزوهايت تلاش کن يا به اندازه تلاشت آرزو کن. "شکسپير"
  9. #9
    2008/06/19
    32
    3

    پاسخ : معرفی و آموزش نرم افزار System Generator

    هادی خان دستتون درد نکنه عالی بود ممنون
  10. #10
    2007/10/14
    تهران
    1,335
    38

    پاسخ : معرفی و آموزش نرم افزار System Generator - نحوه خروجی گرفتن از SysGen

    در مثال پست قبلی، یک طرح کامل ایجاد شد که قابلیت ایجاد یک کامپوننت برای استفاده در کد HDL رو داره و یا با تخصیص پورت ها میشه مستقیماً فایل bit برای پروگرم کردن FPGA ساخته بشه. در این پست نحوه این کار توضیح داده میشه.
    1- اختصاص پایه FPGA به پورت های ورودی و خروجی:
    برای اختصاص پایه به پورت های ورودی و خروجی در پنجره Properties این بلوک ها در تب Implementation تیک گزینه Specify IOB location constraint را بزنید و شماره پایه را در داخل کروشه بنویسید. شماره پایه باید داخل کوتیشن باشد مثلاً 'P34' یا 'AB12'، برای ورودی/خروجی های بیشتر از یک بیت، از سمت چپ، محل بیت پرارزش رو بذارین و از کاما , به عنوان جدا کننده استفاده کنید مثلاً {'P34','P35','P36' } که P34 مربوط به بیت پرارزشه.

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت


    2- اختصاص پایه کلاک:
    محل پایه کلاک در بلوک System Generator در تب Clocking و در فیلد Clock pin location باید وارد بشه.

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت


    برای ساختن فایل bitstream در پنجره بلوک System Generator گزینه Compilation را روی Bitstream بذارین. پارت FPGA مورد نظر رو در قسمت Part انتخاب کنید. در قسمت Target Directory پوشه ای که فایل bit داخلش ایجاد میشه رو مشخص کنید و روی Generate کلیک کنید.

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت


    ---------------------------------------------------------------------------------------------------------------------------------------------------------------------
    مشکل Fatal Internal Error:
    در صورتی که در مرحله Generate کردن با خطای زیر روبرو شدید:

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت


    طبق راه حل های

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

    (مخصوصاً راه حل آخر) عمل کنید.
    ---------------------------------------------------------------------------------------------------------------------------------------------------------------------
    در صورت نیاز به تغییر در فایل ucf، یک کپی از فایل ucf تولید شده توسط SysGen بگیرید و تغییرات را روی آن اعمال کنید. برای جایگزین کردن فایل ucf تغییر داده شده با اصلی طبق توضیحات

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

    عمل کنید (آخر خطی که اضافه می کنید سمیکالن لازم دارد).
    ---------------------------------------------------------------------------------------------------------------------------------------------------------------------
    نحوه استفاده از فایل SysGen به عنوان کامپوننت در ISE:
    در این صورت نیازی به اختصاص شماره پایه نیست و باید Compilation را روی گزینه NGC Netlist تنظیم کنید و روی Generate کلیک کنید. فایلی با پسوند sgp تولید میشه که در ISE به عنوان ماژول جدید به برنامه Add میکنید. در ادامه شبیه اضافه کردن بقیه core های معمولی، کامپوننت ساخته شده رو به کدتون اضافه می کنید.
    ---------------------------------------------------------------------------------------------------------------------------------------------------------------------
    بعد از پایان Generate با کلیک روی Show Reports در کادری که بعد از پایان Generate ظاهر میشه، میتونید گزارش وضعیت شامل خطاها، هشدارها، میزان استفاده از منابع و بقیه اطلاعاتی که در ISE در قسمت Design Summary قابل دسترسی هست ببینید.
    لطفاً برای انجام پروژه های دانشجویی پیام خصوصی نفرستید.
    لطفاً سؤالاتی که در انجمن قابل طرح شدن هستند پیام خصوصی نکنید.
    با تمام وجود گناه کرديم اما نه نعمتش را از ما گرفت نه گناهان ما را فاش کرد اطاعتش کنيم چه مي کند؟"دکتر شريعتي"
    اگر جايي که ايستاده ايد را نمي پسنديد، عوضش کنيد شما درخت نيستيد!! "پاسكال"
    يا به اندازه ي آرزوهايت تلاش کن يا به اندازه تلاشت آرزو کن. "شکسپير"
صفحه 1 از 2 12 آخرین
نمایش نتایج: از 1 به 10 از 20

موضوعات مشابه

  1. پاسخ: 1
    آخرين نوشته: 2015/01/02, 07:42
  2. پروژه اي در مورد system generator
    توسط beheshtaein در انجمن PLD , SPLD , GAL , CPLD , FPGA
    پاسخ: 21
    آخرين نوشته: 2014/08/16, 15:08
  3. مشکل در System Generator
    توسط eehadi در انجمن PLD , SPLD , GAL , CPLD , FPGA
    پاسخ: 0
    آخرين نوشته: 2014/06/06, 14:56
  4. آموزش نرم افزار شبیه ساز Advanced Design System
    توسط engineer2012 در انجمن نرم افزار ADS
    پاسخ: 6
    آخرين نوشته: 2012/04/09, 03:23
  5. پاسخ: 2
    آخرين نوشته: 2007/08/19, 10:05

کلمات کلیدی این موضوع

علاقه مندي ها (Bookmarks)

علاقه مندي ها (Bookmarks)

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •