سیستم های دیجیتال و زبان های توصیف سخت افزار
زبان های توصیف سخت افزار, یک ابزار طراحی به کمک رایانه است(Computer-aided design) که برای طراحی مدرن و سنتز سیستم های دیجیتالی مورد استفاده قرار میگیرد. پیشرفت های مداوم اخیر در فناوری های نیمه رسانا(semiconductors technology) همچنان برای افزایش قدرت و پیچیدگی های سیستم های دیجیتال ادامه دارد.
زبان های توصیف سخت افزار را میتوان به زبان های برنامه نویسی تراشه ها و سیستم های دیجیتال تشبیه کرد. سیستم های دیجیتال را میتوان با زبان هایی همچون سی نیز توصیف کرد اما زبان سی معمولا برای ساخت درایور تراشه های روی کامپیوتر های هوشمند و تراشه هایی همچون آن مورد استفاده قرار میگیرد
سیستم های دیجیتال
سیستم های دیجیتال را بخاطر پیچیدگیشان، نمیتوان به راحتی با استفاده از مدارهای یکپارچه گسسته (discrete integrated circuits) یا شبیه ساز های جدیدتر در سطح شماتیک تحقق بخشید. این سیستم ها معمولا با اسفاده از تراشه های قابل برنامه ریزی با تراکم بالا مانند FPGA ها تحقق بخشیده میشوند.
ساخت سیستم های دیجیتال
زبان های توصیف سخت افزار یک ابزار بسیار کارآمدی را برای پیاده سازی و سنتز طرح ها برروی تراشه ها به برنامه نویسان سخت افزار ارائه میدهند. دو نمونه زبان توصیف سخت افزار که امروزه به صورت گسترده استفاده میشوند وریلاگ(Verilog) و وی اچ دی ال (VHDL) هستند.
پس از نوشتن و تست کردن کد، کاربر میتواند با سنتز کد به اجزای منطق دیجیتال مانند فلیپ فلاپ ها و گیت های دیگر آن را روی تراشه قابل برنامه ریزی FPGA یا قطعات الکترونیکی سازگار دیگر پیاده سازی کند.زبان های توصیف سخت افزار از زمان آغازبه کارشان بهبود مستمری داشته اند.
مدار نیم جمع کننده
در ادامه ضمن معرفی دو زبان وی اچ دی ال و وریلاگ طریقه پیاده سازی یک نیم جمع کننده (Half Adder) را در این دو زبان توضیح خواهیم داد. نیم جمع کننده مداری است که دو بیت را به عنوان ورودی میگیرد و حاصل جمع ان ها را به همراه رقم نقلی به خروجی میبرد.
a: نیم جمع کننده
b: گیت هایی که درون یک نیم جمع کننده اسفاده شده است
در شکل b، مدار نیم جمع کننده نشان داده شده است که در آن S جمع ورودی های a و b است و C رقم نقلی میباشد. در شکل، رقم نقلی یا C با یک گیت AND و جمع ورودی ها یا S با یک گیت XOR ساخته شده است. گیت XOR تنها زمانی 1 را برمیگرداند که یکی از دو ورودی 1 باشد و دیگری 0 باشد.
وی اچ دی ال ( VHDL )
وی اچ دی ال که به معنای زبان توصیف سخت افزار مدارهای مجتمع با سرعت بسیار بالا است(very high-speed-integrated-circuits) در دهه هشتاد میلادی توسط وزارت دفاع آمریکا طراحی شد و بعدا در سال1987 توسط انجمن مهندسین برق و الکترونیک(Institute of Electrical and Electronic Engineers(IEEE)) استاندارد سازی شد.
کد های وی اچ دی ال دوساختار اصلی دارند به نام موجودیت(Entity) و معماری(Architecture). موجودیت سیگنال های ورودی و خروجی سیستم را که توسط کاربر نامگذاری و توصیف میشوند معین میکند و قسمت معماری رابطه ی بین ورودی و خروجی ها را که در قسمت موجودیت تعریف شده اند توصیف میکند.
نکته ی قابل توجه این است که زبان وی اچ دی ال حساس به حروف بزرگ و کوچک نیست و سمیکالن نیز کاراکتر ضروری در همه ی زبان های توصیف سخت افزار است که اصطلاحا جدا کننده خط (Line separator) است.
برای مثال کد پیاده سازی مدار نیم جمع کننده که به زبان وی اچ دی ال نوشته شده است و دو ورودی به نام های a و b و دو خروجی به نام های s که نمایانگر حاصل جمع و c که نمایانگر رقم نقلی است در زیر اورده شده است.میدانیم که در مدار نیم جمع کنند حاصل جمع XOR ورودی ها و رقم نقلی AND ورودی ها است.
entity Half_adder is port(a: in bit; b : in bit; S : out bit; C: out bit); end half_adder; architecture dtfl_half of Half_adder is begin S <= a xor b; -- statement 1 C <= a and b; -- statement 2 end dtfl_half;
وریلاگ( Verilog )
وریلاگ نیز در دهه هشتاد میلادی معرفی و توسط انجمن مهندسین برق و الکترونیک استاندارد سازی شد.این زبان بیشتر برای طراحی مدار های دیجیتال در سطح انتقال ثبات انتزاعی(register-transfer level of abstraction) استفاده میشود.
کد های وریلاگ دو قسمت اصلی دارند به نام های اعلامیه(Declaration) و بدنه.(Body) در قسمت اعلامیه نام متغیر های ورودی و خروجی وارد میشوند و در قسمت بدنه روابط میان ورودی ها و خروجی ها معین میشود. بر خلاف زبان وی اچ دی ال ,وریلاگ حساس به حروف بزرگ و کوچک است .
کد پیاده سازی مدار نیم جمع کننده به زبان وریلاگ
module Half_adder(a,b,S,C); input a,b; output S, C; // Blank lines are allowed assign S = a ^ b; // statement 1 assign C= a & b; // statement 2 endmodule