اطلاعیه

Collapse
No announcement yet.

زبان systemC

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    زبان systemC

    سلام
    کسی از دوستان راجع به زبان systemC اطلاعاتی داره؟

    #2
    پاسخ : زبان systemC

    سلام:

    میدونم شاید دیر هست ولی گفتم جواب بدم شاید به درد آیندگان بخوره.
    SystemC مانند زبون های VHDL و Verilog یک زبان توصیف سخت افزاری هست. علاوه براین، این زبان برای مدل سازی سخت افزار زبان بسیار قدرتمندی میباشد. اساس برنامه نویسی این زبان بر پایه ++C هست و برای شروع به کار اکیدا توصیه میشه که آشنایی نسبتا کاملی با ++C داشته باشین. برخلاف زبان های VHDL و Verilog شما میتوانید با اضافه کردن هدر systemc.h به اول پروژتون اون رو در تمام کامپایلر های C++ اجرا کنید. به نظرم من سایت http://www.asic-world.com/ یکی از بهترین مراجع آموزش این زبان هست. برای این زبان Synthesizer های متفاوتی وجود داره که عموما قیمتهای بالا دارن. این زبون از Kernel بسیار قدرتمندی برخوردار هست که زمان بندی thread ها و task ها رو خیلی دقیق انجام میده. شما به راحتی (!!) میتونین یک Embedded System که شامل سخت افزار و نرم افزار هست رو با این زبون توصیف کنید. مثلا در نظر بگیرید یک Encoder JPEG دارین که میخواین چند بخشش به صورت نرم افزاری پیاده شه و چند بخشش کاملا سخت افزاری پیاده شه. این امکان در VHDL و VERILOG نیست و اگر هم باشه بسیار سخت خواهد بود. در حالیکه در SystemC قابلیت های زیادی هست که بتونین به صورت دقیق و کامل این مدل رو پیاده کنین. امکاناتی چون بهره گیری از Semaphore ها، Mutex، ، Thread و.... که افرادی که اقدام به نوشتن OS میکنن میدونن این امکانات به ظاهر ساده چقدر به درد بخور هست.

    دیدگاه


      #3
      پاسخ : زبان systemC

      البته برای اینکه مطلب قبلی من گمراه کننده نباشه، منظورم از اضافه کردن هدر SYSTEMC.h این نیست که توی مثلا Visual Studio همون اول بنویسین
      کد:
      #include<systemC.h
      !
      برای اینکار ( کامپایل کردن کد های SYSTEMC در Visual Studio) توصیه میکنم اول از همه این PDF رو مطالعه کنین:http://hossein1387.persiangig.com/do...ual-Studio.pdf

      دیدگاه


        #4
        پاسخ : زبان systemC

        systemC یه مشکل داره
        در طراحی دیجیتال شما باید دیدتون کاملا سخت افزاری باشه نه نرم افزاری
        علت قوی نبودن بچه ها در طراحی با fpga دقیقا همینه
        اصلا fpga رو با برنامه نویسی قیاس نکنید
        نظر من فقط و فقط VHDL هست نه حتی Verilog
        خدا گفت : به جهنم ببریدش، او برگشت و با تعجب به خدا نگاه کرد. خدا گفت : به بهشت ببریدش. فرشتگان پرسیدند: چرا؟! خدا گفت : او هنوز به من امیدوار است...

        دیدگاه


          #5
          پاسخ : زبان systemC

          آقا من مخالفم :mrgreen:

          نوشته اصلی توسط mohammadh1387
          برخلاف زبان های VHDL و Verilog شما میتوانید با اضافه کردن هدر systemc.h به اول پروژتون اون رو در تمام کامپایلر های C++ اجرا کنید.
          یعنی چی بر خلاف vhdl verilog ؟ اگرم در این مورد کسی مشکلی داره بخاطر اینه که طبق استانداردهای قدیمی کد میزنه
          اتفاقا در مورد systemc دقیقا برعکس چیزی هست که گفتی. مثلا modelsim که از gcc برای کامپایل systemc استفاده می کنه قواعد کد نویسی خودش رو داره (خارج از استاندارد systemc) و ابزارهای سنتز هم (مثل agility) قواعد خودشون و کد هیچ کدوم رو نمیتونی ببری رو یه نرم افزار دیگه مگر با مواجه شدن با 100 تا error... واسه هر کدوم یه جور باید top module نوشت...

          ضمنا کد systemc به همین راحتی قابل سنتز نیست خیلی از امکاناتش هم تو ابزارهای سنتز پشتیبانی نمیشه.

          نوشته اصلی توسط حمید نجفی
          systemC یه مشکل داره
          در طراحی دیجیتال شما باید دیدتون کاملا سخت افزاری باشه نه نرم افزاری
          علت قوی نبودن بچه ها در طراحی با fpga دقیقا همینه
          اصلا fpga رو با برنامه نویسی قیاس نکنید
          نظر من فقط و فقط VHDL هست نه حتی Verilog
          در ادامه عرایضم:
          نخیر systemc مشکل نداره!
          و در هر طراحی اصولی و حرفه ای باید از سطوح بالا شروع کرد. systemc یه زبان system level هست که برای طی کردن مسیر specification تا پیاده سازی نهایی بهترین گزینه. مدل سازی ها و شبیه سازی هایی که میشه با systemc کرد با هیچ زبون دیگه ای نمیشه کرد. و به تدریج با refine (پالایش!) کردن کد systemc به طرح سخت افزار نهایی نزدیک و دقیق میشن
          نظر من verilog و در کنارش کمی آشنایی با vhdl (چون 5 درصد مواقع ممکنه کد بدرد بخوری که پیدا میکنی vhdl باشه و ازش بی بهره نمونی)
          https://www.linkedin.com/in/mohammadhosseini69

          http://zakhar.blog.ir

          دیدگاه


            #6
            پاسخ : زبان systemC

            نظر من کاملا بر عکس
            اون هم با استناد به چندین سال کار و تدریس در این زمینه
            VHDL بهترین زبان برای طراحی سخت افزاریه
            چون ما اصلا برنامه نویسی نمیکنیم.بلکه طرحی رو توصیف میکنیم
            تمام مشکلاتی که تا الان بوده دقیقا در همین زمینه بوده، چون دانشجو با دید برنامه نویسی به موضوع نگاه میکنه
            فراموش نشه که پایین ترین لایه طراحی هستیم، قرار نیست برای کنترلر برنامه نویسی بشه
            در کل این نظر منه، سلایق متفاوته
            خدا گفت : به جهنم ببریدش، او برگشت و با تعجب به خدا نگاه کرد. خدا گفت : به بهشت ببریدش. فرشتگان پرسیدند: چرا؟! خدا گفت : او هنوز به من امیدوار است...

            دیدگاه


              #7
              پاسخ : زبان systemC

              نوشته اصلی توسط حمید نجفی
              نظر من کاملا بر عکس
              اون هم با استناد به چندین سال کار و تدریس در این زمینه
              VHDL بهترین زبان برای طراحی سخت افزاریه
              چون ما اصلا برنامه نویسی نمیکنیم.بلکه طرحی رو توصیف میکنیم
              تمام مشکلاتی که تا الان بوده دقیقا در همین زمینه بوده، چون دانشجو با دید برنامه نویسی به موضوع نگاه میکنه
              فراموش نشه که پایین ترین لایه طراحی هستیم، قرار نیست برای کنترلر برنامه نویسی بشه
              در کل این نظر منه، سلایق متفاوته
              این روش استناد صحیح نیست!
              البته نظر شما کاملا متین و من متوجه منظورتون هستم
              برای دانشجویی که می خواد طراحی سخت افزاری یاد بگیره بله باید HDL یاد بگیره و بفهمه. و مفهوم برنامه نویسی و توصیف سخت افزار ....

              اما کاربرد systemc یه مرحله قبل از طراحی سخت افزار با HDL. تو یه پروژه کلان اصلا نمیشه از HDL شروع کرد. وقتی هدف سطوح بالا، مدل سازی و تعیین specificationها و بررسی معماری های مختلف باشه نمیشه از HDL استفاده کرد. اصلا قدرتش رو نداره. اتفاقا با systemc خیلی کاملتر و بهتر میشه توصیف کرد! و بخاطر همینم هست که هنوز ابزار سنتز درست و حسابی نداره.
              مشکل اینه که فقط به فکر پیاده سازی هستیم. در حالیکه میشه 90 درصد کارها تو مدل سازی ها و شبیه سازی ها انجام بشه. کم هم هزینه نمیشه واسه مدل سازی ها.
              سرچ کنید system level design کلی کتاب در موردش هست...
              https://www.linkedin.com/in/mohammadhosseini69

              http://zakhar.blog.ir

              دیدگاه


                #8
                پاسخ : زبان systemC

                نوشته اصلی توسط محمد حسینی
                این روش استناد صحیح نیست!
                البته نظر شما کاملا متین و من متوجه منظورتون هستم
                برای دانشجویی که می خواد طراحی سخت افزاری یاد بگیره بله باید HDL یاد بگیره و بفهمه. و مفهوم برنامه نویسی و توصیف سخت افزار ....

                اما کاربرد systemc یه مرحله قبل از طراحی سخت افزار با HDL. تو یه پروژه کلان اصلا نمیشه از HDL شروع کرد. وقتی هدف سطوح بالا، مدل سازی و تعیین specificationها و بررسی معماری های مختلف باشه نمیشه از HDL استفاده کرد. اصلا قدرتش رو نداره. اتفاقا با systemc خیلی کاملتر و بهتر میشه توصیف کرد! و بخاطر همینم هست که هنوز ابزار سنتز درست و حسابی نداره.
                مشکل اینه که فقط به فکر پیاده سازی هستیم. در حالیکه میشه 90 درصد کارها تو مدل سازی ها و شبیه سازی ها انجام بشه. کم هم هزینه نمیشه واسه مدل سازی ها.
                سرچ کنید system level design کلی کتاب در موردش هست...
                یکی از بحث های اصلی و کلید الان همینه، 1.درک مدل سازی و شبیه سازی 2.معماری قابل سنتز
                که هر کدوم مسیر خودش رو داره و در انتها به هم میرسن. اما تقاضای اصلی با مورد دوم
                مسلما برای انعطاف شبیه سازی، زبان سطح بالا تری مثل systemC کار رو خیلی ساده تر میکنه تا استفاده از بخش غیر قابل سنتز VHDL
                خدا گفت : به جهنم ببریدش، او برگشت و با تعجب به خدا نگاه کرد. خدا گفت : به بهشت ببریدش. فرشتگان پرسیدند: چرا؟! خدا گفت : او هنوز به من امیدوار است...

                دیدگاه


                  #9
                  پاسخ : زبان systemC

                  منم اوایل مقاومت می کردم.
                  اما بعد از یکی دو تا تمرین وقتی دیدم چقدر راحت میشه ایده ها رو با systemc به مرحله تجزیه تحلیل رسوند خیلی واسم جالب بود...
                  https://www.linkedin.com/in/mohammadhosseini69

                  http://zakhar.blog.ir

                  دیدگاه


                    #10
                    پاسخ : زبان systemC

                    نوشته اصلی توسط محمد حسینی
                    منم اوایل مقاومت می کردم.
                    اما بعد از یکی دو تا تمرین وقتی دیدم چقدر راحت میشه ایده ها رو با systemc به مرحله تجزیه تحلیل رسوند خیلی واسم جالب بود...
                    ولی هدف اصلی ما پیاده سازیه و با اون دید پیش میریم
                    خدا گفت : به جهنم ببریدش، او برگشت و با تعجب به خدا نگاه کرد. خدا گفت : به بهشت ببریدش. فرشتگان پرسیدند: چرا؟! خدا گفت : او هنوز به من امیدوار است...

                    دیدگاه


                      #11
                      پاسخ : زبان systemC

                      نوشته اصلی توسط حمید نجفی
                      ولی هدف اصلی ما پیاده سازیه و با اون دید پیش میریم
                      ما اومدیم ختم به خیر کنیم اما ...

                      بله وقتی می خوان یه ساختمون بسازن هدف اصلی ساختن ساختمونه اما نمیان از همون اول شروع کنن چپ و راست آجر چیدن و ستون هوا کردن! قبلش مدل سازی و محاسبات انجام میشه.

                      تو سخت افزار هم طراحی سطح سیستم کار مراحل بعد رو خیلی ساده تر و شفاف تر می کنه. و کمک می کنه بهترین پیاده سازی رو انجام بدیم. پیاده سازی باید آخرین و ساده ترین مرحله باشه و از نتیجه ش مطمئن باشیم. نه اینکه تو پیاده سازی همش کلنجار بریم ...
                      دیگه دیر وقته مغزم کار نمیکنه یه سیستم خفن مثال بزنم ...
                      https://www.linkedin.com/in/mohammadhosseini69

                      http://zakhar.blog.ir

                      دیدگاه


                        #12
                        پاسخ : زبان systemC

                        نوشته اصلی توسط محمد حسینی
                        آقا من مخالفم :mrgreen:
                        یعنی چی بر خلاف vhdl verilog ؟ اگرم در این مورد کسی مشکلی داره بخاطر اینه که طبق استانداردهای قدیمی کد میزنه
                        اتفاقا در مورد systemc دقیقا برعکس چیزی هست که گفتی. مثلا modelsim که از gcc برای کامپایل systemc استفاده می کنه قواعد کد نویسی خودش رو داره (خارج از استاندارد systemc) و ابزارهای سنتز هم (مثل agility) قواعد خودشون و کد هیچ کدوم رو نمیتونی ببری رو یه نرم افزار دیگه مگر با مواجه شدن با 100 تا error... واسه هر کدوم یه جور باید top module نوشت...

                        ضمنا کد systemc به همین راحتی قابل سنتز نیست خیلی از امکاناتش هم تو ابزارهای سنتز پشتیبانی نمیشه.
                        در ادامه عرایضم:
                        نخیر systemc مشکل نداره!
                        و در هر طراحی اصولی و حرفه ای باید از سطوح بالا شروع کرد. systemc یه زبان system level هست که برای طی کردن مسیر specification تا پیاده سازی نهایی بهترین گزینه. مدل سازی ها و شبیه سازی هایی که میشه با systemc کرد با هیچ زبون دیگه ای نمیشه کرد. و به تدریج با refine (پالایش!) کردن کد systemc به طرح سخت افزار نهایی نزدیک و دقیق میشن
                        نظر من verilog و در کنارش کمی آشنایی با vhdl (چون 5 درصد مواقع ممکنه کد بدرد بخوری که پیدا میکنی vhdl باشه و ازش بی بهره نمونی)

                        سلام به همه دوستان:

                        آقا شرمنده من متوجه حرفتون نمیشم. منظورتون این هست که کد SYSTEMC رو نمیشه روی Visual studio اجرا کرد و یا اینکه کد SYSTEMC رو نمیشه با Visual Studio سنتز کرد؟؟ اگر اولی منظورتون هست که اشتباه میکنید و من خودم دارم با همین Visual Studio پروژه ام رو انجام میدم. اگر منظورتون دومی هست که من هم کاملا موافقم و این حرف کاملا بدیهی است که کد SystemC رو نمیشه با Visual Studio سنتز کرد.
                        در کل من نمیدونم شما چقدر با این زبون آشنا هستین ولی من خودم هیچ وقت با SystemC کدم رو سنتز نکردم و همیشه مدل سازی انجام دادم. تا چند وقت با gcc کار میکردم ولی الان با Visual Studio کار میکنم. ولی این رو میدونم که Synthesizer کد های SystemC دست هر کسی نیست و بسیار گرون قیمت هست.
                        در کل SystemC بیشتر برای مدل سازی هست تا سنتز. نمیدونم با System Verilog آشنایی دارین یا نه. بخش زیادی از کد های این زیون قابل سنتز نیست ولی اصولا این زبون برای Verification هست نه سنتز کردن! به همین دلیل من میگم SystemC بیشتر برای مدل سازی هست.
                        من این حرف رو از خیلی ها شنیدم که برای Specification بهترین انتخاب VHDL هست. برای Verification بهترین گزینه System Verilog و یا Verilog هست. و برای مدل سازی بهترین انتخاب SystemC هست.
                        این رو در نظر داشته باشین که برای یک پروژه تجاری یک نفر نمیشینه تمام این کار ها رو انجام بده (Modeling--->Spec--->Verification)
                        بلکه یک گروه برای هر کدوم از اینها در نظر گرفته میشه. میشه گفت تقریبا راحت ترین قسمت هم Spec هست. معمولا برای هر مهندس طراح حداقل 2 مهندس Verifi er احتیاج هست (استناد این حرف من به کتاب SystemVerilog for Verifi cation صفحه 63 هست اگه خواستین بگین کتاب رو براتون بفرستم).

                        پس در کل به نظرم این کل کل روی اینکه VHDL بهتره و یا VERILOG بهتره و یا SystemC کلا بی فایده هست، کلا ارزش نداره و هر کدومشون رو باید طبق نیاز استفاده کرد.
                        این نظر من هست

                        دیدگاه


                          #13
                          پاسخ : پاسخ : زبان systemC

                          نوشته اصلی توسط mohammadh1387
                          آقا شرمنده من متوجه حرفتون نمیشم. منظورتون این هست که کد SYSTEMC رو نمیشه روی Visual studio اجرا کرد و یا اینکه کد SYSTEMC رو نمیشه با Visual Studio سنتز کرد؟؟ اگر اولی منظورتون هست که اشتباه میکنید و من خودم دارم با همین Visual Studio پروژه ام رو انجام میدم. اگر منظورتون دومی هست که من هم کاملا موافقم و این حرف کاملا بدیهی است که کد SystemC رو نمیشه با Visual Studio سنتز کرد.
                          در کل من نمیدونم شما چقدر با این زبون آشنا هستین ولی من خودم هیچ وقت با SystemC کدم رو سنتز نکردم و همیشه مدل سازی انجام دادم. تا چند وقت با gcc کار میکردم ولی الان با Visual Studio کار میکنم. ولی این رو میدونم که Synthesizer کد های SystemC دست هر کسی نیست و بسیار گرون قیمت هست.
                          منظورم واضح بود: کدی که تو visual studio نوشتی براحتی قابل انتقال به محیط های دیگه نیست. modelsim و agility رو خودم امتحان کردم. اگه سنتز تول هممیخوای میتونم پلود کنم.

                          نوشته اصلی توسط mohammadh1387
                          در کل SystemC بیشتر برای مدل سازی هست تا سنتز. نمیدونم با System Verilog آشنایی دارین یا نه. بخش زیادی از کد های این زیون قابل سنتز نیست ولی اصولا این زبون برای Verification هست نه سنتز کردن! به همین دلیل من میگم SystemC بیشتر برای مدل سازی هست.
                          من این حرف رو از خیلی ها شنیدم که برای Specification بهترین انتخاب VHDL هست. برای Verification بهترین گزینه System Verilog و یا Verilog هست. و برای مدل سازی بهترین انتخاب SystemC هست.
                          این رو در نظر داشته باشین که برای یک پروژه تجاری یک نفر نمیشینه تمام این کار ها رو انجام بده (Modeling--->Spec--->Verification)
                          بلکه یک گروه برای هر کدوم از اینها در نظر گرفته میشه. میشه گفت تقریبا راحت ترین قسمت هم Spec هست. معمولا برای هر مهندس طراح حداقل 2 مهندس Verifi er احتیاج هست (استناد این حرف من به کتاب SystemVerilog for Verifi cation صفحه 63 هست اگه خواستین بگین کتاب رو براتون بفرستم).
                          اینم تو اون کتاب نوشته که اول modeling بعد spec ؟! البته آره اگه اگه طراحی سخت افزار در سطوح پایین رو در نظر بگیریم VHDL واسه spec کردن معروفتره. اما طراحی که در سطح بالا شروع میشه اولین مرحله spec و ارتباطی به HDL نداره. (کتاب ESL Design & Verification از Brian Bailey فصل ESL flow) منظور منم از spec تو پست های بالا این spec بود نه spec سخت افزار سطح پایین.

                          کسی هم کل کل نکرد! منم از اول دارم میگم systemc کاربرد خودش رو داره...
                          https://www.linkedin.com/in/mohammadhosseini69

                          http://zakhar.blog.ir

                          دیدگاه


                            #14
                            پاسخ : پاسخ : زبان systemC

                            نوشته اصلی توسط محمد حسینی
                            منظورم واضح بود: کدی که تو visual studio نوشتی براحتی قابل انتقال به محیط های دیگه نیست. modelsim و agility رو خودم امتحان کردم. اگه سنتز تول هممیخوای میتونم پلود کنم.

                            اینم تو اون کتاب نوشته که اول modeling بعد spec ؟! البته آره اگه اگه طراحی سخت افزار در سطوح پایین رو در نظر بگیریم VHDL واسه spec کردن معروفتره. اما طراحی که در سطح بالا شروع میشه اولین مرحله spec و ارتباطی به HDL نداره. (کتاب ESL Design & Verification از Brian Bailey فصل ESL flow) منظور منم از spec تو پست های بالا این spec بود نه spec سخت افزار سطح پایین.

                            کسی هم کل کل نکرد! منم از اول دارم میگم systemc کاربرد خودش رو داره...
                            سلام دوست عزیز

                            عزیز منظورم از اینکه کامپایلرهای SystemC گرون هست این نیست که نشه crack شده اش رو پیدا کنی! منظورم در استفاده توی صنعت هست. یعنی اگه بخوای مثلا کد SystemC رو سنتز کنی، باید به مراتب پول کمتری بابت کامپایلر بدی تا اینکه مثلا بخوای یک کد VHDL رو سنتز کنی.
                            میتونین از این لینک زیر مراحل معمول برای پیدا سازی یک SOC رو ببینین:
                            http://www.amazon.com/Embedded-Syste.../dp/1441905030

                            دیدگاه


                              #15
                              پاسخ : زبان systemC

                              سلام بر دوستان
                              من ازون آدمایی نیستم که برم یه فایل آماده از اینترنت بگیرم بدم استاد ولی الان شدیدا به یک مقاله و یا آموزش فارسی SystemC نیاز دارم چون زمانم کمتر از یکروزه!
                              تا الآن خودم یکسری اطلاعات اولیه SystemC را ترجمه کردم ولی برای بقیه بخشها اصلا فرصت ندارم. دوستان اگر کسی اطلاعاتی به زبان فارسی داره خواهشا دریغ نکنید.
                              انشاالله وقتی فایل خودم آماده شد برای استفاده دیگر دوستان قرار خواهم داد.

                              دیدگاه

                              لطفا صبر کنید...
                              X