اطلاعیه

Collapse
No announcement yet.

استفاده از لبه صعودی دلخواه یک سیگنال

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

    استفاده از لبه صعودی دلخواه یک سیگنال

    سلام

    فرض کنید سیگنال دلخواهی به نام a داریم که مجزا از کلاک هست
    به طور خیلی ساده برای اینکه در لبه سیگنال a بخواهیم کاری را انجام دهیم از دستور a'event استفاده میکنیم

    ولی دکتر صدری میگه با اینکه این روش به صورت صحیحی انجام میشه ولی ممکنه در بعضی موارد دچار اشکال بشه
    در ادامه میگه سیگنال کلاک که به پایه مخصوص کلاکfpga وصل میشه دارای بافرها و تقویت کننده های خاصی است و بهتر است همیشه این کلاک را به فلیپ فلاپ ها وصل کنیم

    ولی دکتر یادش میره که بگه از چه روشی به جای روش اول استفاده کنیم؟
    آیا کسی راه حلی در ذهن داره..؟

    #2
    پاسخ : استفاده از لبه صعودی دلخواه یک سیگنال

    سلام.
    ظاهراً سوالت دو بخشه:
    1- اگه a یک مقدار از نوع std_logic باشه(VHDL) در شبیه سازی میتونه مقادیر مختلفی از جمله U و X رو هم بگیره که استفاده از a'event شامل تغییر از و به این مقادیر رو هم شامل میشه، بهتره عادت کنی از روش های مطمئن تر استفاده کنی مثلاً اگه میخوای ببینی که a از یک به صفر تغییر پیدا کرده یا نه یک سیگنال به اسم p_a بسازی و به صورت زیر از اون استفاده کنی:
    کد PHP:
    signal p_a std_logic := '0';

    process(clk)

    begin

    if rising_edge(clkthen

    p_a 
    <= a;

    if 
    = '0' AND p_a = '1' then
    -- your code
    end 
    if;

    end process

    یا به شکل زیر (به دلایلی خودم شکل بالا رو ترجیح میدم):
    کد PHP:
    process(a)

    begin

    if falling_edge(athen
    -- your code
    end 
    if;

    end process

    2- ابزاری که برای Implement کردن به کار میره خودش این موارد رو تشخیص میده و نیازی نیست شما نگرانش باشی در صورتی که یک سیگنال کلاک (یا سیگنالی که خواصی شبیه کلاک داره) روی پایه ای غیر از پایه های GCLK قرار بگیره خطا ایجاد میشه که البته شما میتونی این خطا رو بای پس کنی هر چند اگه واقعاً سیگنالت کلاکه کار درستی نیست.
    پایه های GCLK قابلیت هایی مثل تأخیر زمانی کم، Jitter کم و قابلیت جریان دهی مناسب دارن و وقتی کلاک به این پایه های وصل بشه باعث میشن طرح از نظر زمان بندی قابل اعتمادتر باشه.
    لطفاً برای انجام پروژه های دانشجویی پیام خصوصی نفرستید.
    لطفاً سؤالاتی که در انجمن قابل طرح شدن هستند پیام خصوصی نکنید.
    با تمام وجود گناه کرديم اما نه نعمتش را از ما گرفت نه گناهان ما را فاش کرد اطاعتش کنيم چه مي کند؟"دکتر شريعتي"
    اگر جايي که ايستاده ايد را نمي پسنديد، عوضش کنيد شما درخت نيستيد!! "پاسكال"
    يا به اندازه ي آرزوهايت تلاش کن يا به اندازه تلاشت آرزو کن. "شکسپير"

    دیدگاه


      #3
      پاسخ : استفاده از لبه صعودی دلخواه یک سیگنال

      یک توصیه برادرانه!
      لبه فقط واسه کلاک است و بس .
      اگه جایی از لبه سیگنالی غیر از کلاک استفاده کردی بدون که موفق شدی به بدترین شکل ممکن طراحی کنی!
      https://www.linkedin.com/in/mohammadhosseini69

      http://zakhar.blog.ir

      دیدگاه


        #4
        پاسخ : استفاده از لبه صعودی دلخواه یک سیگنال

        من خودم همیشه سیگنالی رو که میخوام جایی استفاده کنم اول با کلاک اصلی سیستم سنکرون می کنم و به اندازه یک پالس کلاک در میارم ، بعد توی لبه های بالارونده کلاک بررسی می کنم که سیگنال مورد نظر تغییری داشته یا نه.این بهترین روش از نظر منه چون ممکنه بلوک های مختلف با کلاک های مختلفی کار کنن و سنکرون کردن همشون با هم مشکل باشه .برای همین از یه بلوک pulse generator واسه این کار استفاده میکنم.عیب این روش اینه که سیگنال مورد نظر باید اندازه چند کلاک stable باشه...
        یا علی
        :rolleyes:

        دیدگاه

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