دانلود تحقیق زبان توصیف سخت افزار VHDL

Word 232 KB 30706 22
مشخص نشده مشخص نشده کامپیوتر - IT
قیمت قدیم:۱۶,۰۰۰ تومان
قیمت: ۱۲,۸۰۰ تومان
دانلود فایل
  • بخشی از محتوا
  • وضعیت فهرست و منابع
  • VHDL زبان توصیف سخت افزاری برای طراحی مدارات دیجیتال می باشد.

    و مانند سایر زبانهای برنامه نویسی دارای دستورات خاص خود می باشد.

    برای یادگیری زبان VHDL دانستن جبر بول و آشنایی با مدارات منطقی ضروری است.

    لذا ما فرض می کنیم که دوستان با دو مقوله فوق آشنایی کافی دارند.

    و اما یادگیری VHDL چه مزایایی دارد.

    قبل از هرچیز باید گفت که هدف از یادگیری VHDL خصوصاْ در ایران طراحی مدارات دیجیتال و پیاده سازی در FPGA می باشد هرچند مدار طراحی شده را بصورت ASIC (آی سی خاص) نیز می توان پیاده سازی نمود اما غالباْ مدارات دیجیتال با هدف پیاده سازی در FPGA طراحی می شوند.

    برای یادگیری VHDL در این مقطع نیاز به نرم افزاری برای شبیه سازی مدارات طراحی شده خواهیم داشت.

    نرم افزارهای زیادی برای این منظور وجود دارند اما بهترین و آسانترین انها Active-HDL می باشد که نتایج شبیه سازی را بصورت شکل موجهای گرافیکی نمایش می دهد.

    و در عین حال کار کردی آسان دارد.

    تاریخچه

    نام VHDL شامل دو بخش V و HDL  به معنیVHSIC : Very High Speed Integrated Circuits 

    HDL : Hardware Description Language

    استاندارد IEEE 1076-1987

    استاندارد IEEE 1076-1993

    Verilog  و ABEL  (Advanced Boolean Equation Language )

    ویژگی ها

    HDLها ذاتا موازی (همروند) هستند

    ترتیب دستورات مهم نیست

    مبتنی بر رخداد

    امکان استفاده از دستورات ترتیبی را نیز دارد

    اهداف اساسی

    مستند سازی : نگهداری، ارائه، تبادل، استفاده مجدد

    شبیه سازی : بررسی نتایج و ارزیابی

    سنتز : با هدف پیاده سازی در FPGA یا بصورت ASIC

    اجرا= شبیه سازی

     

    نیازمندی ها

    حداقل نیازمندی ها برای یادگیری زبان VHDL

    دانستن جبر بول و آشنایی با مدارات منطقی

    داشتن ابزار CAD مناسب

    توصیف رفتاری و ساختاری

    سه حوزه رفتاری، ساختاری و هندسی (فیزیکی) داریم

    VHDL  : امکان توصیف طرح بصورت رفتاری و ساختاری

    نکته: توصیف رفتاری نسبت به توصیف ساختاری از سطح انتزاع بالاتری برخوردار است

    توصیف رفتاری :

    رفتار سیستم چیست؟

    رابطه بین سیگنال های ورودی و خروجی

    توصیف رفتاری :

    انتقال ثبات یا Data Flow (معمولا بر اساس جملات همروند)

    الگوریتمی  Algorithmic(با استفاده از دستورات ترتیبی)

    مثال ساده

    مدار هشدار باز بودن کمربند و درب خودرو

     Warning = Ignition_on AND (Door_open OR Seatbelt_off)

    Ignition_on : سویچ در جایش قرار گرفته

    Door_open : باز بودن درب خودرو

    Seatbelt_off : کمربند بسته نشده

    Warning : خروجی هشدار به سرنشین خودرو

    توصیف ساختاری :

    مجموعه ای از مولفه ها (دروازه ها)

    و اتصالات بین آنها

    توصیف ساختاری :

    مشابه شماتیک

    نزدیک به تحقق فیزیکی سیستم

    ساختار کلی یک فایل VHDL

    یک توصیف VHDL شامل

    Entity declaration

    Architecture body

    تعریف entity  در حقیقت معرفی سیگنالهای ورودی و خروجی است

    architecture  رابطه بین سیگنالهای ورودی و خروجی است

         (عملکرد/ساختار)

    بخش  Entity

    NAME_OF_ENTITY : یک شناسه اختیاری

    signal_names : سیگنالهای ورودی یا خروجی

    mode :یکی از موارد (in،out ،buffer ، Inout )

    mode

     

    In :سیگنال ورودی

    out  : سیگنال خروجی (فقط توسط یک entity دیگر قابل استفاده)

    buffer  : خروجی که می تواند در داخل entity نیز استفاده شود

    Inout : سیگنا ل دوطرفه (ورودی / خروجی)

    Type

    نوع سیگنال را مشخص می کند ( استاندارد یا  User Defined)

    Bit  : می تواند مقدار صفر یا یک داشته باشد

    Bit_vector  : برداری از مقادیر بیتی است

    Boolean : می تواند مقدار true یا false بگیرد.

    Integer  : عدد صحیح

    Real  : عدد حقیقی

    Character  : هرکاراکتر قابل چاپ

    Time  : برا ی نمایش زمان بکار می رود.

    Time : برا ی نمایش زمان بکار می رود.

    مثال Entity تعریف entity برای یک نیم جمع کننده بخش Architecture توصیف سیستم بصورت رفتاری یا ساختاری است قالب کلی تعریف Architecture به شکل زیر است مدل رفتاری (Behavioral model) مستقل از ساختار داخلی ارتباط بین ورودی ها و خروجی ها بصورت عملیاتی توصیف می شود .

    مثال(1): AND دو ورودی مدل رفتاری (Behavioral model) مثال(1): XOR دو ورودی هم روندی یکی از خصوصیات زبانهای توصیف سخت افزار دستورالعملهای انتساب سیگنال ( وقتی اجرا می شود که یک سیگنال در سمت راست جمله مقدارش تغییرکند تغییر در مقدار یک سیگنال را یک رخداد می نامیم VHDL یک زبان مبتنی بر رخداد در مثال(2) ترتیب نوشتن جملات مهم نیست.

    یعنی می توان جملات x و y و z را بترتیب دلخواه جابجا کرد.

    زمانبندی رخداد ها مکانیزم ایجاد تاخیر در انتساب مقدار جدید به سیگنال سمت چپ با استفاده از کلمه کلیدی after مدل کردن تاخیر های یک مدار واقعی را مدل این قابلیت شبیه سازی مدار را به واقعیت نزدیک تر می کند مثال توصیف رفتاری مدار Half Adder طراحی سلسله مراتبی در مدلسازی ساختاری هر Entity می تواند بعنوان یک مولفه در توصیف Entity دیگر بکار رود این امر می تواند در سطوح مختلف تکرار شود طراحی سلسله مراتبی موجب کاهش پیچیدگی در طراحی مدارات بزرگ می شود معمولا در طرح هایی که با تکرار قابل گسترش اند کاربرد دارد جمع کننده چهار بیتی sum = (A B) C carry = AB + C(A B) چند نکته استفاده از نام پورت مشترک برای Entity های متداخل مجاز است چون Cout بصورت خروجی تعریف شده نمیتواند بعنوان ورودی استفاده شود چون c(4) یک سیگنال داخلی است میتواند بعنوان ورودی استفاده شود.

    میتواند بخشی از توصیف طرح ساختاری و بخشی رفتاری باشد مانند Cout و V در مثال قبل کتابخانه و بسته ها کتابخانه امکان استفاده مشترک از موارد از پیش تعریف شده را فراهم می کند.

    مانند data type component Function Procedure هر کتابخانه شامل تعدادی بسته است نوع std_logic در بسته ieee.std_logic_1164 در کتابخانه ieee تعریف شده است library ieee; use ieee.std_logic_1164.all; عناصر گرامری زبان VHDL شناسه ها کلمات کلیدی (رزرو شده) اعداد کاراکترها رشته ها و رشته های بیتی شناسه ها کلماتی برای نام گذاری مولفه های مختلف مدل VHDL نام سیگنال های ورودی نام سیگنال های خروجی نام entity نامarchitecture قوانین نامگذاری شناسه های اصلی نام شناسه اختیاری است فقط شامل حروف الفبا و ارقام (A..Z و a..z و0..9) و کاراکتر '_' اولین کاراکتر حتما باید از حروف الفبا باشد آخرین کاراکتر نباید '_' باشد دو کاراکتر '_' دنبال هم غیر مجاز به حروف بزرگ و کوچک حساس نیست And2) =AND2 = and2) یک شناسه هر طولی می تواند داشته باشد مثال شناسه صحیح:X10 ، x_10 ، My_gate1 مثال شناسه غلط: _X10 ، my_gate@input، gate-input قوانین گسترش یافته تعریف شناسه های بین دو عدد '\' قرار می گیرند به حروف بزرگ و کوچک حساس کلمات رزرو شده و شناسه های اصلی در شناسه های گسترش مجاز و بعنوان یک شناسه متفاوت در نظر گرفته می شود بین هر دو '\' استفاده از هر کاراکتری و با هر ترتیبی مجاز است شناسه ای بنام BUS:\data را باید بنویسیم \BUS:\\data\ درنسخه VHDL-93 تعریف شده است ولی درنسخه VHDL-87 شناخته شده نیست مثال صحیح: Input، \Input\ ، \input#1\ ، \Rst\\as\ کلمات کلیدی (رزرو شده) شناسه های که بوسیله سیستم برای کار خاص استفاده می شود مثل in، out، or، and، port، map، end و غیره در شناسه توسعه یافته مجاز است(\end\) مراجعه کنید به جدول 4-1 (کلیه کلمات رزرو شده VHDL ) اعداد اعداد صحیح : 12 10 256E3 12e+6 اعداد حقیقی: 1.2 256.24 3.14E-2 پیش فرض مبنای 10 است وگرنه به صورت base#number# مثال: معادل عدد 18 در مبنای 2: 2#10010# در مبنای 16: 16#12# در مبنای 8: 8#22# بمنظور خوانایی 2#1001_1101_1100_0010# 215_123 کاراکترها رشته ها و رشته های بیتی کاراکترها (داخل یک جفت گیومه تکی ) 'a' 'B' ',‘ رشته ( داخل یک جفت گیومه دوتایی ( "This is a string“ هر کاراکتر قابل چاپ مجاز است (حتی خود" ) "This is a ""String""." رشته بیتی یک رشته بیتی یک توالی از بیتها است بمنظور تمایز از رشته کاراکتری در ابتدای آن B می گذارند B”1001” رشته بیتی در مبنای 16 یا 8 هم نوشته می شود Binary: B”1100_1001”, b”1001011” Hexagonal: X”C9”, X”4b” Octal: O”311”, o”113” توجه کنید دو مقدار با طول نامساوی نامساویند b”1001011” ≠ X”4b” O”113” ≠ X”4b” اشیاء داده ای Data objects سیگنالها (توصیف سیم های ارتباطی مدار) ثابت ها متغیرها فایل ثابت (constant) با توجه به نوع مقدار میگیرد و در طول شبیه سازی مقدارش عوض نمی شود constant list_of_name_of_constant: type [:=initial value]; ثابت در ابتدای architecture تعریف شده و در داخل آن استفاده می شود.

    یک ثابت که در داخل یک پردازه تعریف می شود فقط در همان پردازه نیز می تواند استفاده شود.

    constant RISE_FALL_TME: time := 2 ns; constant DELAY1: time := 4 ns; constant RISE_TIME, FALL_TIME: time:= 1 ns; constant DATA_BUS: integer:= 16; تعریف ثابت درهر یک از Entity یا Architecture یا Process Declaring Constants entity ent1 is generic (...); port (...); constant loop_number:positive:=4; begin ...

    end entity ent1; متغیر(Variable) مقدارش می تواند با استفاده از جملات انتساب تغییر کند تغییر به محض اجرای دستور انتساب بدون تاخیر انجام می شود داخل یک پردازه تعریف می شود variable list_of_variable_names: type [:= initial value]; variable CNTR_BIT: bit :=0; variable VAR1: boolean :=FALSE; variable SUM: integer range 0 to 256 :=16; variable STS_BIT: bit_vector (7 downto 0); دستور انتساب برای متغیرها Variable_name := expression; سیگنال (Signal) signal list_of_signal_names: type [ := initial value]; signal SUM, CARRY: std_logic; signal CLOCK: bit; signal TRIGGER: integer :=0; signal DATA_BUS: bit_vector (0 to 7); signal VALUE: integer range 0 to 100; با یک تاخیر مشخص پس از اجرای دستور انتساب به روز می شوند SUM میتوان با یک توالی از مقادیر، یک شکل موج دلخواه ایجاد کرد signal wavefrm : std_logic; wavefrm تفاوت متغیر و سیگنال انتساب متغیر با ':=' و انتساب سیگنال با' انتساب متغیر بدون تاخیر ولی انتساب سیگنال با تاخیر(دلتا) انتساب متغیر ترتیبی و انتساب سیگنال همروند دستور انتساب سیگنال همروند ساده Target_signal انتساب موقع وقوع یک رخداد در یکی از سیگنالها عبارت نوع target_signal باید با نوع عبارت یکسان باشد دستور انتساب سیگنال شرطی Target_signal expression when Boolean_condition else : expression when Boolean_condition else expression; مقدار اولین عبارتی که شرط آن درست است انتساب داده می شود وقوع یک رخداد در یکی از سیگنالهای موجود در عبارات یا شرط ها باعث ارزشیابی مجدد شده و انتساب انجام می شود دستور انتساب سیگنال انتخابی with choice_expression select target_name target_name : target_name target_name target یکی از مقادیر expression را دریافت می کند بر حسب اینکه عبارت choice_expression با کدام یک از choice ها برابر است اولین choice که برابر باشد حساب است Choice می تواند یک عبارت یا یک بازه باشد (مثل 4 to 9) Choice ها نباید همپوشانی داشته باشند تمام حالات choice_expression باید پوشش داده شود.

    مگر اینکه others داشته باشیم توجه شود که others باید آخرین انتخاب باشد مدلسازی رفتاری : دستورات ترتیبی جملات همروند : مدل سازی جریان داده(data flow) جملات ترتیبی : مدل سازی الگوریتمی پردازه (process) یک ساختار )امکان استفاده از جملات ترتیبی( امکان مدلسازی سیستم های پیچیده داخل architecture معادل یک دستور همروند محسوب می شود جملات داخل آن بصورت ترتیبی اجرا می شوند اصولا برای توصیف مدارات ترتیبی گرچه می توان برای مدارات ترکیبی نیز استفاده نمود دستورIF دستور IF ترتیب اجرای دستورات ترتیبی را بر اساس شرط معین می کند if condition then sequential statements [elsif condition then sequential statements ] [else sequential statements ] end if; جمله elsif می تواند به تعداد بیشتری تکرار شود دستور مربوطه به اولین شرط درست اجرا می شود دستور IF را بصورت لانه ای (تودرتو) نیز می توان نوشت.

    entity MUX_4_1a is port (S1, S0, A, B, C, D: in std_logic; Z: out std_logic); end MUX_4_1a; architecture behav_MUX41a of MUX_4_1a is begin P1: process (S1, S0, A, B, C, D) begin if (( not S1 and not S0 )= ’1’) then Z elsif (( not S1 and S0) = ‘1’) then Z elsif ((S1 and not S0) = ’1’) then Z else Z end if; end process P1; end behav_MUX41a; entity MUX_4_1a is port (S1, S0, A, B, C, D: in std_logic; Z: out std_logic); end MUX_4_1a; architecture behav_MUX41a of MUX_4_1a is begin P1: process (S1, S0, A, B, C, D) begin if S1=’0’ and S0=’0’ then Z elsif S1=’0’ and S0=’1’ then Z elsif S1=’1’ and S0=’0’ then Z elsif S1=’1’ and S0=’1’ then Z end if;end process P1; end behav_MUX41a; انواع عملگرها اولویت از پایین به بالا و از راست به چپ مگر اینکه از پرانتز استفاده شود دستور Case case expression is when choices => sequential statements when choices => sequential statements -- branches are allowed [when others => sequential statements ] end case; دو انتخاب(choice) نباید با هم همپوشانی داشته باشند.

    اگر “when others” ذکر نمی شود تمام مقادیر ممکن برای عبارت باید بوسیله مجموعه انتخابها پوشش داده شود.

    مثال : مالتی پلکسر 4 به 1 entity MUX_4_1 is port ( SEL: in std_logic_vector(2 downto 1); A, B, C, D: in std_logic; Z: out std_logic); end MUX_4_1; architecture behav_MUX41 of MUX_4_1 is begin PR_MUX: process (SEL, A, B, C, D) begin case SEL is when “00” => Z when “01” => Z when “10” => Z when “11” => Z when others => Z end case; end process PR_MUX; end behav_MUX41; طراحی مدارات ترتیبی و ماشین حالت مدارات ترتیبی شامل: سیگنالهای ورودی سیگنالهای خروجی سیگنال کلاک احیانا یکسری سیگنالهای کنترولی دیگر (مانند reset ) سیگنالهای کنترلی می توانند فعال صفر یا یک باشند انتقال از یک وضعیت به وضعیت دیگر لبه سیگنال کلاک (clock'event and clock='1') (clock'event and clock=‘0') مثال) آشکارساز توالی بیت (ماشین مور) توصیف رفتاری یک ماشین حالت از نوع مور هدف: تشخیص رشته ی بیتی “1110101101” است هر آشکار ساز توالی n بیتی به روش مور n+1 حالت مورد نیاز دارد چون 10 بیت داریم 11 حالت درنظر می گیریم ENTITY seqdetector IS PORT (clk, reset :IN STD_LOGIC; input :IN STD_LOGIC; output :OUT STD_LOGIC ); END seqdetector ; ARCHITECTURE stat OF seqdetector IS TYPE STATE_TYPE IS (s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10); SIGNAL state, next_state : STATE_TYPE; BEGIN state_register: PROCESS (clk, reset) BEGIN IF reset = '0' THEN state output ELSIF clk'EVENT AND clk = '1' THEN state END IF; END PROCESS state_register;

طي چند دهه اخير ،‌مدارهاي الکترونيکي پيشرفت قابل ملاحظه‌اي داشته‌اند . با پيچيده‌تر شدن هرچه بيشتر اين مدارها ،‌نياز به يافتن روشهايي است که سيستم‌ها را بتوان با مجتمع سازي و جزئيات بيشتر طراحي و پياده‌سازي نمود . قطعات قابل برنامه‌ريزي و FPGA ها ،‌

++C ++C يک زبان برنامه نويسي همه منظوره و سطح بالا است. ++C يک زبان چندرگه است که از برنامه نويسي رويه‌اي، تجريد داده‌ها و برنامه نويسي شئ گرا پشتيباني مي‌‌کند. ++C به همراه جد خود C از پرطرفدارترين زبانهاي برنامه نويسي تجاري هستند. زبان برنامه‌

روبوت های نرم افزاری، نسخه های نرم افزاری روبوتهایی هستند که برای عمل کردن از طریق قوانین الگوریتمی رفتار برنامه ریزی می شوند. آنها برای ارتباط برقرار کردن با کاربران کامپیوتر یا عمل کردن به عنوان جانشین انسان یا انجام وظایف خاصی از قبیل جستجوی اطلاعات، سرگرم کردن مردم یا کمک در کارهای مربوط به وظایف ایجاد می شوند. مثلاً بوتهای پستی (mail bots) پیام های پست تلکترونیک جمع شده در ...

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

کارت گرافیک دو پردازنده ای گیگابایت مدت ها از معرفی تکنولوژی SLI شرکت NVIDIA میگذرد این تکنولوژی امکان استفاده همزمان از دو کارت گرافیک بر روی یک مادربرد را فراهم میسازد . کارت گرافیک هایی که از SLI پشتیبانی میکنند بر پایه دو پردازنده گرافیکی Geforce 6800 و Geforce 6600 طراحی شده اند . در ابتدای معرفی این تکنولوژی فقدان مادربردهایی که دو درگاه PCI Express X16 را برای سوار کردن ...

مقدمه هدف از این پروژه طراحی و ساخت PLC ساده ای توسط میکروکنترلر 80C196 است پس جا دارد آشنایی کلی با PLC پیدا کنیم. PLC از عبارت Programmable Logic Controller گرفته شده است و همانطور که از این عبارت استنباط می شود، کنترل کننده نرم افزاری است که ورودی های آن اطلاعات را به صورت دیجیتال یا آنالوگ دریافت می کند و پس از پردازش فرمانهای مورد نظر به محرکها ارسال می شود. البته در نظر ...

چکیده : در این پروژه پیرامون طراحی نرم افزار ساخت یک قفل الکترونیکی با استفاده از میکرو کنترلر AVR(ATMEGA8) مطالبی چند به میان آمده است این قفل توانایی این را دارد که توسط سه نفر و با سه رمز رقمی متفاوت مورد استفاده قرار گیرد . میکرو AVR رمز را از یک صفحه کلید ماتریسی دریافت می کند و پس از نمایش برروی صفحه نمایشگر LCD پس از مقایسه با رمز موجود در حافظه در صورت صحیح بودن رله ای ...

تاريخچه اي درباره ويژوال بيسيک ويژوال بيسيک توسعه يافته basic مي باشد.basicتوسط پروفسورjohn kemency وthomas kurts ازکالج dartmouth براي نوشتن برنامه هاي ساده ايجادشد واين طراحي ازاواسط دهه1960 آغازگرديد. هدف از بيسيک اوليه آموزش برنامه نويسي بود

نانوتکنولوژی چیست؟ کامپیوتر ها اطلاعات را تقریبا" بدون صرف هیچ هزینهأی باز تولید مینمایند. اقداماتی در دست اجراست تا دستگاههایی ساخته شوند که تقریبا" بدون هزینه - شبیه عمل بیتها در کامپیوتر - اتمها را به صورت مجزا بهم اضافه کنند ( کنار هم قرار دهند). این امر ساختن اتوماتیک محصولات را بدون نیروی کار سنتی همانند عمل کپی در ماشینهای زیراکس میسر میکند. صنعت الکترونیک با روند کوچک ...

RSS 2.0 عمران-معماري خاکبرداري آغاز هر کار ساختماني با خاکبرداري شروع ميشود . لذا آشنايي با انواع خاک براي افراد الزامي است. الف) خاک دستي: گاهي نخاله هاي ساختماني و يا خاکهاي بلا استفاده در

ثبت سفارش
تعداد
عنوان محصول