(۲۰ بهمن ۱۳۹۰ ۰۴:۰۸ ب.ظ)پشتکار نوشته شده توسط: در مورد Verilog هم اگه کسی اطلاعاتی داره ممنون می شم در اختیارم قرار بده
چه اطلاعاتی؟ Verilog یک زبون توصیف سخت افزاره که به اینجور زبونها HDL هم میگن. با استفاده از HDLها می تونین یک Datapath رو تعریف کرده و بعد براش یک کنترلر بنویسین. فرق اساسیش با زبانای برنامه نویسی اینه که Flow نداره، مثل اون چیزی که در معماری تحت عنوان RTL درس داده میشه.
زبان VHDL هم مثل Verilog می مونه و فرق خاصی با هم ندارن.
مثلا این کد یک Full Adder رو در VHDL تعریف کرده:
کد:
ENTITY fulladder IS
PORT (a, b, cin: IN BIT ; s, cout: OUT BIT);
END fulladder;
ARCHITECTURE simple OF fulladder IS
BEGIN
s <= a XOR b XOR cin;
cout <= (a AND b) OR (a AND cin) OR (b AND cin);
END simple;
البته نیازی به تعریف FA نیست. بلکه میشه نوشت s <= a+b+cin و این یک خط هم کار کد بالا رو میکنه. تمام عملیات پایه مثل شیفت، گردش، ضرب، مقایسه و ... در Library تعریف شدن و جاشون جمع کننده و هر سخت افزار پایه دیگه قرار میگیره.
برای یک Device واقعی کدها می تونن تا چند هزار خط برن. (چند هزار خط بدون Flow
) و پیاده سازی و تستشون چند ماه طول بکشه.
بعد از اینکه معماری رو با این زبون تعریف کردین باید اون رو سنتز کنین. خروجی سنتز خود سخت افزاره. یعنی کد شما تبدیل به گیت های پایه تعریف شده در اون Library ای میشه که باهاش کد رو سنتز کردین. خود کد رو هم قبل از سنتز و هم بعد از سنتز میشه Simulate کرد که ببینین که کد داره درست کار میکنه یا نه. البته قبل از سنتز تاخیر نداریم (تاخیر همه گیتها صفر) و فقط برای اطمینان از صحیح بودن کد میشه به کار میره. اما خروجی بعد از سنتز تاخیر هم داره.
با خروجی پس از سنتز میشه یک FPGA رو پروگرم کرد یا اون رو به یک کارخانه ساخت IC داد.
نقل قول: اول اینکه این MIPS ای که در کتاب پترسون هستش فقط تئوریه یا عملی هم داره؟
وجود داره. به Wikipedia سر زدید؟