реклама на сайте
подробности

 
 
> Память на ПЛИС
Sl.Hunter
сообщение Jul 4 2008, 05:33
Сообщение #1


Участник
*

Группа: Новичок
Сообщений: 27
Регистрация: 29-06-08
Из: Москва
Пользователь №: 38 628



Здравствуйте мне нужно для контролёра шины PCI организовать 64 байта памяти. Язык проектриования VHDL, ПЛИСы Altera MAX3000 или MAX7000.

Сначала я взял вот этот код: http://esd.cs.ucr.edu/labs/tutorial/RAM.vhd Немного изменил под себя, но тут оказалось, что даже 64 байта в ПЛИС не влазят там требуется больше 512 макроячеек, что с этим делать я не представляю, т.к. это только один из блоков контролёра. И ещё память по идее должна быть перезаписываемая, но как при старте записать начальные значения в какие-либо ячейки, которые потом можно будет изменить я не поинмаю!
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Sl.Hunter
сообщение Jul 4 2008, 08:36
Сообщение #2


Участник
*

Группа: Новичок
Сообщений: 27
Регистрация: 29-06-08
Из: Москва
Пользователь №: 38 628



Может сделать можно как то по другому, но в контролёре PCI должны присутсвовать 64 байта, в которых занесена информация об устройстве и информация для БИОСа, это часть PnP как я понял исходя из этой информации БИОС выделит мне адресс порта В/В и зансёт в один из этих регистров + там есть регистр стастуса и регистр команд в которых храниться статус и доступные команды. Эти регистры адресуемые и часть доступна и для чтения и дял записи. В некоторых из них должна изначальна храниться определённая комбинация, вместо которой впоследствии БИОС запишет адресс порта ввода вывода.
Go to the top of the page
 
+Quote Post
-Al-
сообщение Jul 4 2008, 08:41
Сообщение #3


Местный
***

Группа: Свой
Сообщений: 330
Регистрация: 10-06-05
Из: Россия, Москва
Пользователь №: 5 894



Цитата(Sl.Hunter @ Jul 4 2008, 12:36) *
Может сделать можно как то по другому, но в контролёре PCI должны присутсвовать 64 байта, в которых занесена информация об устройстве и информация для БИОСа, это часть PnP как я понял исходя из этой информации БИОС выделит мне адресс порта В/В и зансёт в один из этих регистров + там есть регистр стастуса и регистр команд в которых храниться статус и доступные команды. Эти регистры адресуемые и часть доступна и для чтения и дял записи. В некоторых из них должна изначальна храниться определённая комбинация, вместо которой впоследствии БИОС запишет адресс порта ввода вывода.

smile.gif И накой Вам память нужна??? Просто добавляете регистры, которые меняются и все, что не меняется - вбиваете константами, в CPLD это все без проблем влезет smile.gif

Пример (на AHDL):
Код
-- PCI Configuration space read
when s_cfg_read =>
  case access_address[ ( PCI_INT_ADDRESS_SIZE - 1 )..0 ] is
    when ADDRESS_00H =>
      ad_out_data[ 31..16 ] = PCI_DEVICE_ID;
      ad_out_data[ 15..0 ] = PCI_VENDOR_ID;
    when ADDRESS_04H =>
      -- Status Reg
      ad_out_data[ 31..24 ] = B"00000000";
      if( PCI_FAST_BACK_TO_BACK == "ON" ) generate
        ad_out_data[ 23 ] = B"1";
      else generate
        ad_out_data[ 23 ] = B"0";
      end generate;
      ad_out_data[ 22..16 ] = B"0000000";
      -- Command Reg
      ad_out_data[ 15..10 ] = B"000000";
      if( PCI_FAST_BACK_TO_BACK == "ON" ) generate
        ad_out_data[ 9 ] = command_fb2b.q;
      else generate
        ad_out_data[ 9 ] = B"0";
      end generate;
      ad_out_data[ 8..0 ] = ( B"00000000", command_io.q );
    when ADDRESS_08H =>
      ad_out_data[ 31..8 ] = PCI_CLASS_CODE;
      ad_out_data[ 7..0 ] = PCI_REVISION;
    when ADDRESS_10H =>
      ad_out_data[ 31..16 ] = 0;
      ad_out_data[ 15..PCI_BAR0_WIDTH ] = bar0[];
      for i in 1 to ( PCI_BAR0_WIDTH - 1 ) generate
        ad_out_data[ i ] = B"0";
      end generate;
      ad_out_data[ 0 ] = B"1";
    when ADDRESS_3CH =>
      if( PCI_INT != "OFF" ) generate
        ad_out_data[ 31..16 ] = H"0000";
        if( PCI_INT == "A" ) generate
          ad_out_data[ 15..8 ] = PCI_INTA_PIN;
        end generate;
        if( PCI_INT == "B" ) generate
          ad_out_data[ 15..8 ] = PCI_INTB_PIN;
        end generate;
        if( PCI_INT == "C" ) generate
          ad_out_data[ 15..8 ] = PCI_INTC_PIN;
        end generate;
        if( PCI_INT == "D" ) generate
          ad_out_data[ 15..8 ] = PCI_INTD_PIN;
        end generate;
        ad_out_data[ 7..0 ] = int_line_reg[];
      else generate
        ad_out_data[] = 0;
      end generate;
    when others =>
      ad_out_data[] = 0;
  end case;

-- PCI Configuration space write
when s_cfg_write =>
  if( !irdy ) then
    case access_address[ ( PCI_INT_ADDRESS_SIZE - 1 )..0 ] is
      when ADDRESS_04H =>
        command_io.( d, ena ) = ( ad[ 0 ], B"1" );
        if( PCI_FAST_BACK_TO_BACK == "ON" ) generate
          command_fb2b.( d, ena ) = ( ad[ 9 ], B"1" );
        end generate;
      when ADDRESS_10H =>
        bar0[] = ad[ 15..PCI_BAR0_WIDTH ];
        bar0[].ena = vcc;
      when ADDRESS_3CH =>
        if( PCI_INT != "OFF" ) generate
          int_line_reg[] = ad[ 7..0 ];
          int_line_reg[].ena = vcc;
        end generate;
    end case;
  end if;
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Sl.Hunter   Память на ПЛИС   Jul 4 2008, 05:33
- - Евгений Николаев   Ничего удивительного, т.к. в CPLD (MAX3k, MAX7k, н...   Jul 4 2008, 05:57
|- - -Al-   Цитата(Евгений Николаев @ Jul 4 2008, 09...   Jul 4 2008, 06:34
- - Sl.Hunter   Мда, вы меня обрадовали, учитывая, что ПЛИСы други...   Jul 4 2008, 08:04
|- - -Al-   Цитата(Sl.Hunter @ Jul 4 2008, 12:04) Мда...   Jul 4 2008, 08:29
|- - DmitryR   Цитата(Sl.Hunter @ Jul 4 2008, 12:04) Мда...   Jul 4 2008, 08:56
|- - -Al-   Цитата(DmitryR @ Jul 4 2008, 12:56) Что ж...   Jul 4 2008, 09:01
|- - DmitryR   Цитата(-Al- @ Jul 4 2008, 13:01...   Jul 4 2008, 09:15
|- - -Al-   Цитата(DmitryR @ Jul 4 2008, 13:15) Ну во...   Jul 4 2008, 09:29
- - Sl.Hunter   А как это адресовать? Ой сории код не увидел щас ...   Jul 4 2008, 08:43
- - Sl.Hunter   Задание я не выбирал)) Что сказали то и делаю...   Jul 4 2008, 09:07
- - Sl.Hunter   А откуда вы эти модули берёте?   Jul 4 2008, 09:46
|- - -Al-   Цитата(Sl.Hunter @ Jul 4 2008, 13:46) А о...   Jul 4 2008, 09:47
- - Евгений Николаев   ЦитатаЭто так работает современное Российское обра...   Jul 4 2008, 09:50
- - Sl.Hunter   А с чего Вы решили что мне это не надо? Один из ра...   Jul 4 2008, 10:00
|- - -Al-   Цитата(Sl.Hunter @ Jul 4 2008, 14:00) P.S...   Jul 4 2008, 10:03
- - Sl.Hunter   Да мне собственно хоть что, то я попытаюсь разобра...   Jul 4 2008, 19:42


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 21st June 2025 - 15:02
Рейтинг@Mail.ru


Страница сгенерированна за 0.01393 секунд с 7
ELECTRONIX ©2004-2016