باسلام
از انجاییکه تایپ خروجی بلوک IOBUFاز نوع STD_LOGIC است. (فقط وقتی سیگنالی از نوع STD_LOGICرو به بلوک ارجاع میدهم نرم افزار خطا نمیدهد)چطور میتوان داده های از نوع STD_LOGIC_VECTOR را بافر کرد .؟ با تشکر از شما
سلام
اگر منظور شما بافر نرم افزاری باشد به ازای تمامی ورودی و خروجی ها غیر از کلاک و صرف نظر از اینکه به صورت تک بیتی و یا چند بیتی میباشند، یک سیگنال در محیط کد نویسی ایجاد کرده و سیگنال متناظر با خروجی را در ابتدا و بعد از begin محیط architecture به پورت های خروجی ارجاع می دهیم و پورت های ورودی را نیز بعد از begin محیط process به سیگنال های متناظر با ورودی ارجاع خواهیم داد.
سلام،
موضوعی که آقای معزی توضیح دادند و بحث بسیار مهمی در کدنویسی اصولی است، مساله رجیستر کردن پورتهای ورودی و خروجی در FPGA است.
سوال شما تا جایی که من از اون برداشت کردم در مورد استفاده از بافرهای IO موجود در مدار پینهای FPGA است.
برای پورتهای ورودی یا خروجی، این بافرهای توسط نرمافزار سنتز به کار گرفته میشوند و شما لازم نیست کاری انجام دهید.
برای پورتهای دو طرفه یا bidirectional که با مد inout تعریف میشوند، بهتر است شما مستقیما این بافرها را در کد instant کنید.
همانطور گه گفتید، هر بافر فقط یک بیت را بافر میکند. بنابراین، اگر مثلا سیگنال شما از نوع vector و هشت بیتی است، باید بیتهای آن را جداگانه و به کمک هشت بافر IO به پین FPGA متصل کنید.
موفق باشید.
بله متوجه شدم کاملا با تشکر