اطلاعیه

Collapse
No announcement yet.

مشکل با process (vhdl)

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

    مشکل با process (vhdl)

    سلام
    من می خوام دستور process رو با لیست حساسیت تست کنم.
    این کدی که نوشتم :

    entity m2 is
    PORT (i1, i2 : in std_logic;
    o1 : out std_logic);
    end;

    architecture m2_arch of m2 is

    begin
    process(i1) is
    variable v :std_logic;
    begin
    v := i1 and i2;
    o1 <= v;
    end process;
    end;

    process باید به i1 حساس باشه و با تغییر i1 عمل and رو انجام بده. اما در عمل هم به i1 حساس و هم به i2.به جای variable، از signal هم استفاده کردم بارم همون شد.
    چرا؟
    (fpga رو تازه شروع کردم... xilinx ise و آی سی spartan3 ...)
    https://www.linkedin.com/in/mohammadhosseini69

    http://zakhar.blog.ir

    #2
    پاسخ : مشکل با process (vhdl)

    یعنی چی؟ یعنی اگه i1 تغییر نکنه و i2 تغییر کنه بازم process اجرا میشه؟
    منظورم اینه که اول برنامه که اجرا می کنی و هنوز process شروع نشده، اگه i2 تغییر کنه بازم شروع میشه؟
    دانش فني تا به عمل تبديل نشده، ذره اي ارزش نداره. اما بعضي وقت ها بايد از دانش براي باز کردن مرزهاي جديدي در علم استفاده کرد، نه اينکه اونها رو صرفاً فقط به عمل تبديل کرد.

    دیدگاه


      #3
      پاسخ : مشکل با process (vhdl)

      سلام
      با active چک کردم ، اشتباه میکنی. فقط حساسیت به همون ورودی تو پراسس وجود داره.

      { خلاف قوانین - پاک شد }

      دیدگاه


        #4
        پاسخ : مشکل با process (vhdl)

        نوشته اصلی توسط mahdiks
        سلام
        با active چک کردم ، اشتباه میکنی. فقط حساسیت به همون ورودی تو پراسس وجود داره.

        به نظر هم همین میرسه. مگه اینکه تو اختصاص پایه ها یه جایی اشتباه کرده باشی.
        این active چیه؟
        دانش فني تا به عمل تبديل نشده، ذره اي ارزش نداره. اما بعضي وقت ها بايد از دانش براي باز کردن مرزهاي جديدي در علم استفاده کرد، نه اينکه اونها رو صرفاً فقط به عمل تبديل کرد.

        دیدگاه


          #5
          پاسخ : مشکل با process (vhdl)

          نوشته اصلی توسط حامد پور آزاد
          یعنی چی؟ یعنی اگه i1 تغییر نکنه و i2 تغییر کنه بازم process اجرا میشه؟
          منظورم اینه که اول برنامه که اجرا می کنی و هنوز process شروع نشده، اگه i2 تغییر کنه بازم شروع میشه؟
          اول برنامه رو نمیدونم تست نکردم. اما به i2 که حساس هست.
          خروجی سنتز فقط یه گیت and میده. واسه لیست حساسیت چیزی درست نمیکنه!

          نوشته اصلی توسط mahdiks
          سلام
          با active چک کردم ، اشتباه میکنی. فقط حساسیت به همون ورودی تو پراسس وجود داره.
          active hdl?
          سیمولیشن رو که بیخیال! من دارم عملی کار میکنم و بحث سنتز ...
          همونطور که گفتم شماتیک سنتز، فقط یه and داره!

          https://www.linkedin.com/in/mohammadhosseini69

          http://zakhar.blog.ir

          دیدگاه


            #6
            پاسخ : مشکل با process (vhdl)

            سلام
            با active HDL چک کردم عیبی نداشت.
            معمولا جدول درستی که برای ریختن تو FPGA ساخته میشه همین است که در شبیه سازی نشون میده .
            یعنی این رو روی FPGA ریختی و اینجوری جواب داده؟
            { خلاف قوانین - پاک شد }

            دیدگاه


              #7
              پاسخ : مشکل با process (vhdl)

              چیزی که در عمل روی fpga ریخته میشه مدار سنتز شده هست.

              سیمولیشن هم خوبه، اما خیلی ایده ال عمل میکنه

              مثلا دستور after
              اگه انتساب سیگنال رو با یه after مثلا 1000000 میکرو ثانیه ای انجام بدی نتیجه سیمولیشن و سنتز چیه؟ در عمل که نمیشه تاخیر رو تعریف کرد...

              لطفا خودتون این برنامه ای که گفتم (process) رو امتحان کنید....
              https://www.linkedin.com/in/mohammadhosseini69

              http://zakhar.blog.ir

              دیدگاه


                #8
                پاسخ : مشکل با process (vhdl)

                یک سری دستورات در VHDL وجود داره که برای اینکه مدل درستی را بسازند بوجود اومده و اصلا سنتز نمیشه.
                این دستورایی زمانی هم از اون مدلند.
                فقط اثرشون تو شبیه سازی دیده میشه
                { خلاف قوانین - پاک شد }

                دیدگاه


                  #9
                  پاسخ : مشکل با process (vhdl)

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

                  دیدگاه


                    #10
                    پاسخ : مشکل با process (vhdl)

                    تنها چیزی که مدار منطقی از بیرون ممکنه براش مشخص باشه کلاک fpga .
                    اگه زمانی رو بخواهید اندازه بگیرید باید یه جوری برید روی کلاک کار کنید. تایمر بزارید بشمرید و ...
                    ولی مطمئنم که این دستوری که after 50ns , این جور دستورا در شبیه سازی میان ولی در مدار پیاده سازی نمیشوند.
                    روش چک کردن پیاده سازی چنین دستوری رو اگه بفرمایید میشه بهتر صحبت کرد.
                    مثلا یک and طراحی کنید که خروجیش بعد از 10ms ظاهر بشه.
                    { خلاف قوانین - پاک شد }

                    دیدگاه


                      #11
                      پاسخ : مشکل با process (vhdl)

                      منظور من هم همینه یعنی با کلاک میشه تاخیر درس کرد.ضمن این که این دستور برا شبیه سازی دقیق تو فرکانس بالاس چون گیت های توی FPGA یه تاخیر دارن که تو دیتاشیت نوشته چقدره.به هر حال شبیه سازی توی QUARTUS و ISE خیلی خوب جواب میده

                      دیدگاه


                        #12
                        پاسخ : مشکل با process (vhdl)

                        نوشته اصلی توسط Hossein.N
                        ولی من تا الان هر چی امتحان کردم عملیش با شبیه سازیش عین هم شده.
                        یعنی فقط با ورودی i1 عمل and انجام میشه؟؟
                        آی سی چیه؟ برنامه ؟
                        https://www.linkedin.com/in/mohammadhosseini69

                        http://zakhar.blog.ir

                        دیدگاه

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