PDA

توجه ! این یک نسخه آرشیو شده میباشد و در این حالت شما عکسی را مشاهده نمیکنید برای مشاهده کامل متن و عکسها بر روی لینک مقابل کلیک کنید : سیستم وریلوگ



sadeghbakhshi
06-05-2015, 01:18
سلام
با زبان سیستم وریلوگ کار کرده ؟
تفاوتش با وریلوگ چی هست و نقاط ضعف و قوت هرکدومشون چی هست؟

esisafa
06-05-2015, 01:47
وریلوگ یک مشکلاتی داشت که در سیستم وریلوگ برطرف شده. تا جایی که فهمیدم این مشکلات مربوط به سطوح بالای طراحی بوده در کارهای سیستماتیک و اصولی و مربوط به کارهای عادی نمیشه

hossein1387
06-05-2015, 02:35
سلام

همونطور که میدونید بعد از طراحی سیستم با زبان های verilog و vhdl شما باید یک testbench بنویسید که بیاد سیستم رو از لحاظ کارایی (functional) ارزیابی کنه. اگر یکم کار کرده باشید متوجه میشید که خود testbench نویسی برای خودش داستانی داره. معمولا طراحی خود testbench از خود design وقت گیر تر و پیچیده تر هست. زبان های verilog و vhdl به دو صورت بهشون نگاه میشه یا برای سنتز و یا برای شبیه سازی. مثلا وقتی توی verilog مینویسیم:



#10 reset = 0;

به این معنی هست که در زمان شبیه سازی ۱۰ واحد زمانی تاخیر باید سپری بشه تا مقدار صفر به reset داده بشه. این توی سنتز هیچ معنی نمیده چون که هر سخت افزاری تاخیر خودش رو داره و شما نمیتونی تاخیر گیت رو تنظیم کنی. ولی این قابلیت ها این خوبی رو داره که میتونیم یک درک قابل قبولی از اجرای کدمون توی سخت افزار داشته باشیم. حالا یک سری شرکت غول! نشستن یک زبان برای verification تعریف کردند و اون رو در قالب زبان system verilog بیرون دادند. توجه کنید که تمام syntax های این زبان قابل سنتز نیست و اصولا برای functional verification ارایه شده. توی زبان های verilog و vhdl مفاهیمی مثل assertion based verification معنا داشت. به این معنی که مهندس verifier از assertion ها استفاده میکرد تا بتونه صحت یک گزاره منظقی رو توی طرح خودش بررسی کنه. در زبان systemveriolg علاوه براین نوع صحت سنجی, coverage ها هم اضافه شده که فوق العاده مفید هست. برای مثال به شکل زیر توجه کنید:
You can see links before reply

این یک گزارش coverage از طرح من هست که به صورت اتوماتیک توسط نرم افزار Questasim (خیلی شبیه به modelsim هست) تولید شده. این گزارش داره به من میگه که ازبین سیکنال های ورودی/خروجی که برای من مهم بود, با توجه به نوع داده (چند بیتی بودن سیگنال) چقدر از اون رو تونستم توسط کدی که نوشتم پوشش بدم. ابزارهای متفاوتی تعبیه شده که میتونه خیلی مفید باشه در این زمینه مثلا cross-coverage و یا randomization رو میشه نام برد. همچنین شما میتونید برای هر سیگنال constraint تعریف کنید و خود system-verilog یک contraint solver بسیار قوی داره و میتونه گزاره ایی که توی verilog/vhdl بیان کردنش بسیار سخت بود رو با چند خط کد بیان کنه.

علاوه بر coverage قابلیت های بسیار زیاد دیگه ایی اضافه شده از مهمترین هاش:
- اضافه کردن Interface که این هم فوق العاده کارایی کد رو بالا میبره و شما میتونید سیگنال های خودتون رو bundle کنید و به هر سری از اونها زمانبندی خودشون رو بدید.
- OOP بودن SystemVerilog از دیگر قابلیت های عالی این زبان هست. شما به راحتی میتونید Verification Environment خودتون رو به صورت مجموعه ایی از کلاس ها تعریف کنید. برای مثال میتونید به استانداردهای UVM و OVM مراجعه کنید کنید که کتابخونه های verification بر اساس systemverilog هستن که توسط شرکتهای synopsys و caedence طراحی شده
- Inter process communication هم در این زبان حمایت میشه که باعث میشه بتونید از mailbox, semaphore, event ها در کد خودتون استفاده کنید.

البته امکانات زیاد دیگه ایی هم توی این زبان موجود هست که میتونید با مراجعه به استاندارد این زبان اونها رو پیدا کنید.
بر اساس همین زبان, چند سال پیش زبان Bluespec SystemVerilog هم تعریف شده که اون هم به نوبه خودش زبان فوق العاده ایی هست.

sadeghbakhshi
06-05-2015, 03:00
پس با این تفاسیر میتونه جای وریلوگ و VHDL رو در اینده بگیره و ارزش یاد گیری و وقت گذاشتن رو داره . درسته؟
البته هنوز هم یکسری نواقص داره
حالا سوالی که مطرح میشه اینکه نیازی هست با وجود سیستم وریلوگ زبان های vhdl و وریلوگ رو هم یاد گرفت؟
چون قبل از این خیلی ها پیشنهاد میکردن vhdl و وریلوگ رو با هم یاد بگیرید و متناسب با نوع پروژه یکیشون رو برای پروژه و یا به صورت
ترکیبی استفاده کنیم

hossein1387
06-05-2015, 03:27
همونطور که گفتم systemverilog اصولا برای verification به وجود اومده و شما اگر job description های شرکت های بزرگ رو نگاه کنید مثلا Qualcomm, Caedence, Synopsys , Nvidia و .... همه و همه SystemVerilog رو برای Verification میخوان و برای Design همون VHDL و Verilog استفاده میکنن.
مثلا این Job description (You can see links before reply) برای مهندس Verification در شرکت Qualcomm هست (خدا نصیب هممون کنه!).
یک مهندس سخت افزار خوب همه این زبان ها رو معمولا بلد هست و باهاشون کار کرده. علاوه براین ۳ زبان SystemC هم هست که برای Modeling طراحی شده و براساس C++ هست. بنابراین مساله این نیست که کدوم رو یاد بگیرید, مساله این هست که هرکدوم رو کجا استفاده کنید.