
Modelsim برنامه ای است که توسط Mentor Graphics برای شبیه سازی طرح های VHDL و Verilog توسعه یافته است. این برنامه پرکاربردترین برنامه شبیه سازی در تجارت و آموزش است. این مقاله ابتدا توضیح می دهد که شبیه سازی چیست و سپس چگونه می توانید از Modelsim Student Edition برای استفاده شخصی استفاده کنید.
شبیه سازی یک مرحله حیاتی در طراحی FPGA و ASIC است. شبیه سازی به طراح اجازه می دهد تا به طرح خود بال بدهد و کدی را که نوشته است ببیند. چگونه به محرک پاسخ می دهد؟ در یک شبیه سازی کامل، تمام حالت های ممکن طراحی اجرا می شوند تا اطمینان حاصل شود که تمام ورودی ها به درستی آدرس دهی شده اند. اشتباهات مختلفی وجود دارد که اگر طرح خود را شبیه سازی نکنید، می توانید به راحتی مرتکب شوید، یک مثال واضح از یکی از آنها کنار گذاشتن عبارت if است. پس بهتره وقت رو از دست ندید و شروع به نصب Modelism کنید!
Modelsim را با پارامترهای پیش فرض نصب کنید. توجه داشته باشید که باید از منتور گرافیک مجوز بگیرید. در پایان نصب باید گزینه Finish را انتخاب کنید، پنجره مرورگر با فرم درخواست مجوز باز می شود. به یاد داشته باشید که با کلیک کردن روی پیوند مجوز درخواست در نشانک مرورگر خود یا پیوند ارسال شده در وب، پاسخی دریافت نخواهید کرد.
کدی که شبیه سازی خواهیم کرد مدار VHDL زیر است. کد فعلی مهم نیست، بنابراین اگر در حال یادگیری Verilog هستید، نگران نباشید! برای این آموزش نیازی به دانستن VHDL نیست. کد VHDL یک AND Gate ساده ایجاد می کند و برخی از ورودی ها را از طریق یک محیط آزمایشی می پذیرد. کد زیر را از and_gate.vhd و testbench را در and_gate_tb.vhd کپی کنید.
and_gate.vhd:
کتابخانه ieee;
از ieee.std_logic_1164.all استفاده کنید.
entity and_gate است
بندر (
input_1 : در std_logic;
input_2 : در std_logic;
and_result: خروجی std_logic
)
پایان i_port;
معماری rtl of and_gate است
signal and_gate: std_logic;
دارم شروع میکنم
and_gate <= input_1 and input_2;
and_result <= and_gate;
پایان rtl;
and_gate_tb.vhd:
کتابخانه ieee;
از ieee.std_logic_1164.all استفاده کنید.
entity and_gate_tb است
end and_gate_tb;
رفتار معماری and_gate_tb است
سیگنال r_SIG1 : std_logic := ‘0’;
سیگنال r_SIG2 : std_logic := ‘0’;
سیگنال w_RESULT: std_logic;
کامپوننت and_gate است
بندر (
input_1 : در std_logic;
input_2 : در std_logic;
and_result : out std_logic);
کامپوننت نهایی and_gate;
دارم شروع میکنم
and_gate_INST : and_gate
نقشه بندر (
input_1 => r_SIG1،
input_2 => r_SIG2،
and_result => w_RESULT
)
فرآیند است
دارم شروع میکنم
r_SIG1 <= '0';
r_SIG2 <= '0';
10 ثانیه صبر کنید
r_SIG1 <= '0';
r_SIG2 <= '1';
10 ثانیه صبر کنید
r_SIG1 <= '1';
r_SIG2 <= '0';
10 ثانیه صبر کنید
r_SIG1 <= '1';
r_SIG2 <= '1';
10 ثانیه صبر کنید
فرآیند نهایی؛
پایان رفتار
بیایید Modelsim را باز کنیم. پنجره ای مانند این را خواهید دید:
برای شبیه سازی، باید یک پروژه ایجاد کنید. روی File > New > Project کلیک کنید. پنجره ای را در سمت چپ خواهید دید. یک مکان برای پروژه جدید خود انتخاب کنید و and_gate را به عنوان نام آن وارد کنید. پروژه ها در Modelsim دارای پسوند فایل .prj هستند. تنظیمات دیگر را در حالت پیش فرض قرار دهید. گزینه Default Library Name می گوید که همه کدها در کتابخانه کار کامپایل خواهند شد.
روی افزودن فایل موجود کلیک کنید. به جایی که and_gate.vhd و and_gate_tb.vhd را دانلود کردید. ادامه دهید و هر دو را به پروژه خود اضافه کنید. تنظیمات دیگر را در حالت پیش فرض قرار دهید. پس از اتمام، روی OK کلیک کنید.
حال اگر دقت کنید می بینید که فایل ها با موفقیت به پروژه شما اضافه شده اند. آن دو علامت سوال آبی را در پنجره پروژه Modelsim بالا مشاهده می کنید؟ این بدان معنی است که Modelsim هنوز فایل ها را کامپایل نکرده است. شما باید فایل های منبع را کامپایل کنید. برای این کار روی and_gate.vhd راست کلیک کرده و Compile و سپس Compile All را انتخاب کنید. همانطور که در تصویر زیر نشان داده شده است، پیام ها باید در پنجره کنسول سبز شوند. این بدان معنی است که ساخت موفق بوده است.
روی Simulation در نوار منو کلیک کنید، سپس روی Start Simulation کلیک کنید. با این کار پنجره Start Simulation باز می شود. روی علامت مثبت در کنار work کلیک کنید، سپس روی علامت مثبت در کنار and_gate_tb کلیک کنید. مطمئن شوید که and_gate_tb را انتخاب کرده اید، نه and_gate. چون می خواهیم طراحی را در محیط تست شبیه سازی کنیم. وقتی and_gate_tb هایلایت شد، روی OK کلیک کنید.
تقریبا تمام شد! اکنون همه چیز برای شبیه سازی آماده است. اکنون بیشتر زمانی که از Modelsim استفاده می کنید صرف بررسی شکل موج ها می شود. نمای شکل موج شامل شکلهای موج (0 و 1 باینری، ارقام هگزا دسیمال، ارقام باینری، انواع دادههای شمارش و غیره) برای همه سیگنالهای طراحی شما است. این شکل موج نشان می دهد که ماژول شما چگونه به محرک های مختلف پاسخ می دهد. شکل زیر به شما نشان می دهد که نمای شکل موج شما چگونه به نظر می رسد، اما ابتدا باید چند سیگنال نظارتی اضافه کنید. در این مثال تمام سیگنال های موجود در محیط تست را بررسی می کنیم. برای این کار روی and_gate_tb در پنجره سیم سمت راست کلیک کنید و روی Add Wave کلیک کنید. همچنین میتوانید سیگنالها را از سایر پنجرههای Modelsim به پنجره Wave کلیک کرده و بکشید.
به همراه این مقاله دانلود کنید: آموزش مهندسی نرم افزار از صفر تا صد
در اینجا پنجره شکل موج است. تمام هشدارها در محیط تست به عنوان هشدارهایی اضافه می شوند که می توانید نظارت کنید. برای شروع شبیه سازی، روی نماد کاغذ با فلش رو به پایین در کنار فیلد 100 ns کلیک کنید. با این کلیک شبیه سازی شما 100 ns اجرا می شود. می توانید ببینید که چگونه سیگنال ها تغییر می کنند! تبریک می گویم! شما اولین شبیه سازی Modelsim خود را انجام دادید!
دانلود رایگان: آموزش همه زبان های برنامه نویسی رایج