آموزش جامع و کامل نرم افزار ISE برای کار با FPGA و CPLD های شرکت Xilinx (بخش دوم)

0

آموزش جامع و کامل نرم افزار ISE برای کار با FPGA و CPLD های شرکت Xilinx (بخش دوم)

IP core ها نقش بسیار مهمی در طراحی مدارات دیجیتال دارند. استفاده ازIP core  های آماده موجب کاهش زمان طراحی می‌شود. یکی از مهم‌ترین IP هایی که در اغلب مدارات FPGA استفاده می‌شود Clock wizard است. از این IP  برای ساختن کلاک مطمئن و بدون جیتر و با فرکانس دلخواه استفاده ‌می‌شود.

افزودن IP به پروژه

برای اضافه کردن IP موردنظر، از منوی Project گزینه New Source را انتخاب کنید. در پنجره باز شده (شکل 9) گزینه (IP CORE Generator & Architecture Wizard) را انتخاب کرده و نام و مسیر ذخیره آن را تعیین کنید. سپس بر روی دکمه Next کلیک کنید.

شکل 9- نحوه اضافه کردن IP به مدار بخش اول
شکل 9- نحوه اضافه کردن IP به مدار بخش اول

در پنجره باز شده (شکل 10) IP  موردنظر را انتخاب کنید. برای راحتی می‌توانید نام IP را جستجو کنید. پس از انتخاب IP موردنظر بر روی دکمه Next و سپس Finish کلیک کنید.

شکل 10- نحوه اضافه کردن IP به مدار بخش دوم
شکل 10- نحوه اضافه کردن IP به مدار بخش دوم

سپس متناسب با IP  موردنظر پنجره‌ای (شکل 11) برای تنظیم پارامترهای IP باز می‌شود. برای تنظیم مناسب هر IP باید دیتاشیت آن به دقت مطالعه شود. بعد از تنظیم مشخصات IP بر روی دکمه Generate کلیک کنید تا IP مورد نظر ساخته شود.

شکل 11- نحوه اضافه کردن IP به مدار بخش سوم
شکل 11- نحوه اضافه کردن IP به مدار بخش سوم

جهت استفاده از IP  می‌توان با کلیک کردن بر روی IP  مورد نظر در پنجره Design  و انتخاب گزینه View HDL Instantiation Template (شکل 12) Template نحوه Instance گرفتن (شکل 13) از IP را مشاهده کرد.

شکل 12- نحوه Instance گرفتن از IP core بخش اول
شکل 12- نحوه Instance گرفتن از IP core بخش اول
شکل 13- نحوه Instance گرفتن از IP core بخش دوم
شکل 13- نحوه Instance گرفتن از IP core بخش دوم

افزودن منبع به پروژه

برای این کار از منوی Project گزینه Add Source را انتخاب می‌کنید و سپس از پنجره باز شده فایل مورد نظر را انتخاب کرده و روی دکمه Open کلیک کنید.

شبیه سازی برنامه

برای شبیه سازی هر ماژول ابتدا باید Test Bench مناسبی برای آن طراحی شود. در Test Bench کلیه ورودی‌های ممکن به ماژول زیر تست داده می‌شود و سپس خروجی آن با خروجی مطلوب مقایسه می‌شود. برای شبیه سازی باید گام‌های زیر طی شود:

برای شبیه سازی در محیط ISE ابتدا باید View شبیه سازی انتخاب شود (شکل 14).

شکل 14- نحوه شبیه سازی در محیط ISE بخش اول
شکل 14- نحوه شبیه سازی در محیط ISE بخش اول

برای ایجاد فایل Test Bench از منوی Project گزینه New Source را انتخاب می‌کنید و سپس در پنجره باز شده گزینه Verilog Test Fixture و یا VHDL Test Bench را انتخاب می‌کنید (شکل 15). سپس بر روی دکمه Next کلیک کنید.

شکل 15- نحوه شبیه سازی در محیط ISE بخش دوم
شکل 15- نحوه شبیه سازی در محیط ISE بخش دوم

سپس در پنجره باز شده ماژول زیر تست را انتخاب کنید و بر دکمه Next و سپس Finish کلیک کنید. در نهایت در فایل ایجاد شده، Test Bench  مورد نظر به آن اضافه کنید.  در این پروژه برای تست مالتی پلکسر کد زیر نوشته شده است.

`timescale 1ns / 1ps

module MUX_TB;

    // Inputs
    reg clk;
    wire a;
    wire b;
    wire c;
    wire d;
    reg [1:0] sel;
    reg [3:0] inputs_lines;
    // Outputs
    wire [1:0] out;
    integer i, j;
    
MU_4to1 uut (
    .clk_in(clk), 
    .a_in(a), 
    .b_in(b), 
    .c_in(c), 
    .d_in(d), 
    .sel_in(sel), 
    .out(out)
);

assign {a,b,c,d} = inputs_lines;

initial begin
    inputs_lines = 0;
    sel = 0;
    for (i=0;i<4;i=i+1) begin
        for (j=0;j<16;j=j+1) begin
            inputs_lines =inputs_lines+1;
            @(posedge uut.clk);
        end
        sel <= sel+1;
    end
end

initial begin 
    clk = 0;
    forever begin
        #10;
        clk = ~clk;
    end
end
endmodule
 

فایل Test bench که در این گزارش استفاده داده شده ضمیمه گزارش شده است.

پس از نوشتن Test Bench در پنجره Design بر روی فایل Test Bench موردنظر کلیک کنید و سپس گزینه Simulate Behavioral Model را انتخاب کنید. در صورتی که هیچگونه خطایی روی نداده باشد، نرم‌افزار ISim اجرا می‌شود. با استفاده از نوار ابزارISim که در شکل 16 نشان داده شده است می‌توان روند شبیه‌سازی را کنترل کرد. در قسمت Objects نیز می‌توان سیگنال دلخواه را انتخاب کرد و به Wave Window اضافه کرد (شکل 16).

شکل 16- نحوه شبیه سازی در محیط ISE بخش سوم
شکل 16- نحوه شبیه سازی در محیط ISE بخش سوم
شکل 17- نحوه شبیه سازی در محیط ISE بخش چهارم
شکل 17- نحوه شبیه سازی در محیط ISE بخش چهارم

افزودن Constraint به پروژه

Constraint ها الزاماتی را هستند که ISE باید در Implement رعایت کند. Constraint ها انواع متعددی دارند.  در این گزارش به دو مورد که بیشترین کاربرد را دارند بسنده می‌کنیم. در محیط ISE، کلیه Constraint ها در فایل‌هایی با پسوند ucf ذخیره می‌شوند. برای ایجاد فایل Constraint در محیط ISE از منوی Project گزینه New Source را انتخاب کرده و در پنجره باز شده نوع فایل را Implementation Constraints File تنظیم کنید (شکل 18).

شکل 18- نحوه اضافه نمودن Constraint در نرم افزار ISE
شکل 18- نحوه اضافه نمودن Constraint در نرم افزار ISE

Pin assignment

هدف از این کار تعیین پایه‌های فیزیکی مدار است. با این کار مشخص می‌شود که پایه‌های ماژول دقیقاً متناظر با کدام یک از پایه‌های FPGA است. برای تعیین پایه فیزیکی از Constraint زیر استفاده می‌کنیم.

NET "clk_in" LOC = P50; 

Constraint  فوق پایه  clk_inرا بر روی پایه P50 نگاشت می‌کند.

Timing Constraint

 این نوع Constraint   مشخصه‌های زمانی سیستم را تعیین می‌کنند. در محیط ISE انواع مختلفیConstraint وجود دارد که بیان آن‌ها خارج از حوصله بحث است و تنها به بیان Constraint کلاک ورودی سیستم که در اغلب موارد کافی است، بسنده می‌کنیم. برای تعریف کلاک از Constraint زیر استفاده می‌کنیم.

NET "clk_in" TNM_NET = clk_in;
TIMESPEC TS_clk_in = PERIOD "clk_in" 20 ns HIGH 50%;
 

با استفاده از دستورات فوق پایه clk_in  بعنوان سیگنال کلاک با دوره تناوب 20 نانو ثانیه با سیکل کاری 50 درصد معرفی می‌شود.

لازم به ذکر است که ISE دارای ابزارهایی نظیر Constraints Editor  و Planahead و … است که افزودن و تحلیل Constraint  ها بسیار آسان می‌کند.

مرحله Synthesis

پس از اینکه طراحی سیستم به اتمام رسید و Constraint های لازم اضافه شد نوبت به سنتز مدار می‌رسد. در فرآیند سنتز کد HDL یا Schematic  به Netlist تبدیل می‌شود. Netlist شامل net هایی است که با استفاده از گیت‌های منطقی و فلیپ فلاپ بهم وصل شده‌اند.

با انتخاب فایل Top Module و کلیک بر روی گزینه Synthesis فرآیند سنتز آغاز می‌شود. صورتی که فرآیند موفقیت آمیز باشد و خطایی روی نداده باشد، با کلیک بر روی گزینه View RTL Schematic می‌توان Netlist خروجی را مشاهده کرد (شکل 17).

کل 7- نحوه ایجاد فایل Verilog یا VHDL بخش اول

مرحله Implement

پس از سنتز مدار نوبت به Implement Design مدار می‌رسد. در این مرحله Netlist بدست آمده از مرحله سنتز به منابع موجود FPGA نگاشت می‌شود. در صورتی که فرآیند موفقیت آمیز باشد می‌توان تحلیل‌های زمانی و منابع مصرف شده و … را انجام داد.

مرحله Generate Bit Stream

بعد از اتمام مرحله Implementation  نوبت ایجادBit Stream  است. با کلیک کردن بر روی گزینه Generate Programming File  این فرایند آغاز می‌شود.

Choose your Reaction!
دیدگاه خود را بنویسید

آدرس ایمیل شما منتشر نخواهد شد.

redronic.com
رفتن به نوار ابزار