دوستان، من تازه شروع به کار با VHDL کردم و می خوام حدود 100 تا پالس با تا خیر و طول پالس متفاوت تولید کنم. اطلاعات مربوط به طول پالس و تاخیر باید از ورودی خونده بشه.
من خودم این پروژه رو به سه قسمت 1- خوندن داده از ورودی و ذخیره کردن 2- خوندن داده ها از EPROM(؟)و 3- قسمت تولید پالس تقسم کردم.
در حال حاضر من دارم روی قسمت سوم کار می کنم. من توی این مرحله 50 تا خروجی تعریف کردم و در بدنه از یک شمارنده و دستور if به ترتیب زیر استفاده کردم:
if (rising_edge(clk)) then
if cnt < 40000000 then
cnt := cnt + 1;
if (cnt > a and cnt < b) then
ch1<='1';
else
ch1<='0';
end if;
متغیرهای aو b قبلا مقدار دهی می شن(در واقع همون مقادیری هستن که از ورودی خونده وذخیره شدن)
مسئله اینجاس که با افزایش تعداد کانال های خروجی و یا مقدار شمارنده از یه حدی، برنامه جواب نمی ده. یعنی سنتز می شه. بدون ارور پروگرم می شه. ولی کار نمی کنه!!
آیا تعداد if ها در این سطح محدودیتی ایجاد می کنه واسه fpga? با توجه به اینکه fpga مورد استفاده ی من xilinx spartan3 با 2 مگeprom هس؟
به جای if از چی می تونم استفاده کنم که این مشکل پیش نیاد؟
مرسی از کمکتون!
من خودم این پروژه رو به سه قسمت 1- خوندن داده از ورودی و ذخیره کردن 2- خوندن داده ها از EPROM(؟)و 3- قسمت تولید پالس تقسم کردم.
در حال حاضر من دارم روی قسمت سوم کار می کنم. من توی این مرحله 50 تا خروجی تعریف کردم و در بدنه از یک شمارنده و دستور if به ترتیب زیر استفاده کردم:
if (rising_edge(clk)) then
if cnt < 40000000 then
cnt := cnt + 1;
if (cnt > a and cnt < b) then
ch1<='1';
else
ch1<='0';
end if;
متغیرهای aو b قبلا مقدار دهی می شن(در واقع همون مقادیری هستن که از ورودی خونده وذخیره شدن)
مسئله اینجاس که با افزایش تعداد کانال های خروجی و یا مقدار شمارنده از یه حدی، برنامه جواب نمی ده. یعنی سنتز می شه. بدون ارور پروگرم می شه. ولی کار نمی کنه!!
آیا تعداد if ها در این سطح محدودیتی ایجاد می کنه واسه fpga? با توجه به اینکه fpga مورد استفاده ی من xilinx spartan3 با 2 مگeprom هس؟
به جای if از چی می تونم استفاده کنم که این مشکل پیش نیاد؟
مرسی از کمکتون!
دیدگاه