آموزش نرم افزار Modelism و نکات کاربردی که باید بدانید
Modelsim برنامه ای است که توسط Mentor Graphics برای شبیه سازی طرح های VHDL و Verilog ساخته شده است. این برنامه پرکاربردترین برنامه شبیه سازی در تجارت و آموزش است. این مقاله اول برای تان باز می کند که شبیه سازی چه اهمیتی دارد و به بعد این که چه طور می توانید از Modelsim Student Edition برای استفاده شخصی تان بهره ببرید، می پردازد.
شبیه سازی یک مرحله حیاتی در طراحی FPGA و ASIC است. شبیه سازی به طراح این امکان را می دهد که به طرحش پر و بال دهد و ببیند کدی که نوشته است؛ چه طور به محرک واکنش نشان می دهد. در یک شبیه سازی کامل تمام حالت های ممکن طراحی پیاده سازی می شود تا این اطمینان به وجود بیاید که به تمام ورودی ها به درستی پرداخته می شود. خطا های مختلفی هستند که اگر طراحی تان را شبیه سازی نکنید، خیلی راحت ممکن است مرتکب شان شوید، مثال بارزِ یکی از آن ها جا گذاشتن عبارت if است. خب پس بهتر است وقت را تلف نکنیم و نصب و راه اندازی مدلیسم را شروع کنیم!
Modelsim را با پارامتر های پیش فرض نصب کنید. توجه داشته باشید که باید از منتور گرافیک مجوز بگیرید. در پایان نصب هم باید گزینه Finish را انتخاب کنید، یک پنجره مرورگر با فرم License Request باز می شود. یادتان باشد که با کلیک کردن روی لینک درخواست مجوز موجود در Bookmark مرورگرتان یا لینک ارسال شده در وب جوابی نخواهید گرفت.
کدی که شبیه سازی خواهیم کرد، طرح VHDL زیر است. کد فعلی اهمیتی ندارد، بنابراین اگر در حال یادگیری Verilog هستید ، نگران نباشید! برای این آموزش نیازی به دانستن VHDL نیست. کد VHDL یک And Gate ساده درست می کند و برخی از ورودی ها را از طریق یک محیط تست می گیرد. کد زیر موجود در and_gate.vhd و testbench را در and_gate_tb.vhd کپی کنید.
and_gate.vhd:
library ieee;
use ieee.std_logic_1164.all;
entity and_gate is
port (
input_1 : in std_logic;
input_2 : in std_logic;
and_result : out std_logic
);
end and_gate;
architecture rtl of and_gate is
signal and_gate : std_logic;
begin
and_gate <= input_1 and input_2;
and_result <= and_gate;
end rtl;
and_gate_tb.vhd:
library ieee;
use ieee.std_logic_1164.all;
entity and_gate_tb is
end and_gate_tb;
architecture behave of and_gate_tb is
signal r_SIG1 : std_logic := ‘0’;
signal r_SIG2 : std_logic := ‘0’;
signal w_RESULT : std_logic;
component and_gate is
port (
input_1 : in std_logic;
input_2 : in std_logic;
and_result : out std_logic);
end component and_gate;
begin
and_gate_INST : and_gate
port map (
input_1 => r_SIG1,
input_2 => r_SIG2,
and_result => w_RESULT
);
process is
begin
r_SIG1 <= ‘0’;
r_SIG2 <= ‘0’;
wait for 10 ns;
r_SIG1 <= ‘0’;
r_SIG2 <= ‘1’;
wait for 10 ns;
r_SIG1 <= ‘1’;
r_SIG2 <= ‘0’;
wait for 10 ns;
r_SIG1 <= ‘1’;
r_SIG2 <= ‘1’;
wait for 10 ns;
end process;
end behave;
بیایید Modelsim را باز کنیم . با پنجره ای به این شکل رو به رو خواهید شد:
برای شبیه سازی، باید یک پروژه ایجاد کنید. روی File > New > Project کلیک کنید. پنجره ای را در سمت چپ مشاهده خواهید کرد. یک مکان برای پروژه جدیدتان انتخاب کنید و نامش را and_gate تایپ کنید . پروژه ها در Modelsim پسوند فایل .prj دارند. سایر تنظیمات را بگذارید در حالت پیش فرض شان باشند. گزینه Default Library Name می گوید که همه کد ها در کتابخانه Work کامپایل می شوند.
روی Add Existing File کلیک کنید. به مکانی که and_gate.vhd و and_gate_tb.vhd را دانلود کرده اید؛ بروید و هر دو را به پروژه تان اضافه کنید . سایر تنظیمات را در حالت پیش فرض شان رها کنید. بعد از اتمام کار، روی گزینه OK کلیک کنید.
حالا اگر دقت کنید می بینید که فایل ها با موفقیت به پروژه تان اضافه شده اند. آن دو علامت سوال آبی را در شکل پنجره پروژه Modelsim در بالا می بینید ؟ این یعنی Modelsim هنوز فایل ها را کامپایل نکرده است. شما باید فایل های منبع را کامپایل کنید. برای این کار بر روی and_gate.vhd راست کلیک کنید، روی گزینه Compile و بعد روی Compile All کلیک کنید. همان طور که در تصویر زیر نشان داده شده است، باید پیام ها در پنجره کنسول به رنگ سبز در بیایند. این یعنی کامپایل موفقیت آمیز بوده است.
روی Simulate در نوار منو کلیک کنید، بعد روی Start Simulation کلیک کنید. با این کار پنجره Start Simulation باز می شود . روی علامت مثبت در کنار work کلیک کنید، بعد روی علامت مثبت در کنار and_gate_tb کلیک کنید. مطمئن شوید که and_gate_tb و نه and_gate را انتخاب کرده اید؛ زیرا می خواهیم طرح را در محیط تست شبیه سازی کنیم. هنگامی که and_gate_tb برجسته شد، روی OK کلیک کنید.
تقریبا تمام شد! حالا همه چیز برای شبیه سازی آماده است. حالا بیشتر زمانی که از Modelsim استفاده میکنید، صرف مشاهده شکل موج می شود. نمای شکل موج شامل امواج (0 و 1 باینری ، ارقام هگزا دسیمال، ارقام باینری ، انواع داده شمارشی و غیره ) برای همه سیگنال های طرح تان است. این موج نشان می دهد که ماژول شما چه طور به محرک های مختلف واکنش نشان می دهد. شکل بعدی به شما نشان می دهد که نمای شکل موج شما چه طور به نظر می رسد، البته اول باید چند سیگنال برای نظارت اضافه کنید. در این مثال، ما تمام سیگنال های موجود در محیط تست را بررسی می کنیم . برای این کار روی and_gate_tb در پنجره Sim در سمت راست و روی Add Wave کلیک کنید. همچنین می توانید روی سیگنال ها کلیک کنید و آن ها را از پنجره های دیگر Modelsim به پنجره موج Drag کنید.
در کنار این مطلب دانلود کنید: آموزش صفر تا صد مهندسی نرم افزار
اینجا پنجره شکل موج شما است. همه سیگنال های موجود در محیط تست به عنوان سیگنال هایی که می توانید بر آن ها نظارت کنید، اضافه شده اند. برای راه اندازی عملیات شبیه سازی ، روی نماد یک تکه کاغذی که کنارش یک فلش رو به پایین دارد و در کنار فیلد 100 ns قرار گرفته کلیک کنید. با این کلیک ، شبیه سازی شما به مدت 100 نانوثانیه اجرا می شود. می بینید چه طور سیگنال ها تغییر می کنند! تبریک می گویم ! شما اولین شبیه سازی Modelsim تان را انجام دادید!
دانلود رایگان: آموزش همه زبانهای برنامه نویسی رایج