Ктонить в FPGA/VHDL разбирается ?

Печатные платы, программируемая логика, разработка и изготовление аппаратуры

Moderator: Shaos

imsushka
Maniac
Posts: 237
Joined: 01 Jan 2022 04:34
Location: USSR, Tashkent

Ктонить в FPGA/VHDL разбирается ?

Post by imsushka »

Дуремарствую помаленьку. Делаю видеокарточку VGA 1024*768 текстовую.

вылезла бяка. почему то происходит сдвиг пикселей.
при SCALE_x1 (пиксел в пиксел) сдвига нет
при удвоении пикселлов ( SCALE_x2 ) сдвиг на 2 пикселя ( в знакоместе )
при учетверении - сдвиг на 4 пикселя


Code: Select all

COLss <= COLs(4 DOWNTO 0) WHEN ( SCALE_x1 = '1' ) ELSE
         COLs(5 DOWNTO 1) WHEN ( SCALE_x2 = '1' ) ELSE
         COLs(6 DOWNTO 2);

PROCESS(CLK)
BEGIN
    IF (RISING_EDGE(CLK)) THEN

      CASE COLs(2 DOWNTO 0) IS
-------------------------------------------------------------------------------
      WHEN "000" =>
        VA <= MEM_SCR;

-------------------------------------------------------------------------------
      WHEN "001" =>

-------------------------------------------------------------------------------
      WHEN "010" =>
        FONT  <= VDi(7 DOWNTO 0);
        COLOR <= VDi(15 DOWNTO 8);

-------------------------------------------------------------------------------
      WHEN "011" =>
        VA <= MEM_FONT;

-------------------------------------------------------------------------------
      WHEN "100" =>
        VA <= MEM_SEL;

-------------------------------------------------------------------------------
      WHEN "101" =>
        FONT_ROW2 <= VDi;
        eCOLOR <= VDi(15 DOWNTO 8);

-------------------------------------------------------------------------------
      WHEN "110" =>

        COLOR0 <= VDi(15 DOWNTO 12);
        COLOR1 <= VDi(11 DOWNTO  8);
        COLOR2 <= VDi( 7 DOWNTO  4);
        COLOR3 <= VDi( 3 DOWNTO  0);

        FONT_ROW1 <= VDi;

-------------------------------------------------------------------------------
      WHEN "111" =>
        IF ( FONT_ColL = '1' ) THEN
          bCOLOR <= eCOLOR;
        ELSE
          bCOLOR <= COLOR;
        END IF;

        IF ( FONT_none = '1' ) THEN
          FONT_ROW0 <= COLOR & FONT;
        ELSE
          FONT_ROW0 <= FONT_ROW2;
        END IF;

        COLs0 <= COLs(3 DOWNTO 0);

      END CASE;


      CASE COLss(2 DOWNTO 0) IS
-------------------------------------------------------------------------------
      WHEN "000" =>

        IF ( FONT_8Pix = '0' AND COLs0(3) = '0' ) THEN
          PIXEL1 <= FONT_ROW0(15);
        ELSE
          PIXEL1 <= FONT_ROW0(7);
        END IF;
        PIXEL2   <= FONT_ROW0(11 DOWNTO 10);
        PIXEL4   <= FONT_ROW0(7 DOWNTO 4);
-------------------------------------------------------------------------------
      WHEN "001" =>

        IF ( FONT_8Pix = '0' AND COLs0(3) = '0' ) THEN
          PIXEL1 <= FONT_ROW0(14);
        ELSE
          PIXEL1 <= FONT_ROW0(6);
        END IF;
        PIXEL2   <= FONT_ROW0(9 DOWNTO 8);
        PIXEL4   <= FONT_ROW0(3 DOWNTO 0);
-------------------------------------------------------------------------------
      WHEN "010" =>

        IF ( FONT_8Pix = '0' AND COLs0(3) = '0' ) THEN
          PIXEL1 <= FONT_ROW0(13);
        ELSE
          PIXEL1 <= FONT_ROW0(5);
        END IF;
        PIXEL2   <= FONT_ROW0(7 DOWNTO 6);
        PIXEL4   <= FONT_ROW1(15 DOWNTO 12);
-------------------------------------------------------------------------------
      WHEN "011" =>

        IF ( FONT_8Pix = '0' AND COLs0(3) = '0' ) THEN
          PIXEL1 <= FONT_ROW0(12);
        ELSE
          PIXEL1 <= FONT_ROW0(4);
        END IF;
        PIXEL2   <= FONT_ROW0(5 DOWNTO 4);
        PIXEL4   <= FONT_ROW1(11 DOWNTO 8);
-------------------------------------------------------------------------------
      WHEN "100" =>

        IF ( FONT_8Pix = '0' AND COLs0(3) = '0' ) THEN
          PIXEL1 <= FONT_ROW0(11);
        ELSE
          PIXEL1 <= FONT_ROW0(3);
        END IF;
        PIXEL2   <= FONT_ROW0(3 DOWNTO 2);
        PIXEL4   <= FONT_ROW1(7 DOWNTO 4);
-------------------------------------------------------------------------------
      WHEN "101" =>

        IF ( FONT_8Pix = '0' AND COLs0(3) = '0' ) THEN
          PIXEL1 <= FONT_ROW0(10);
        ELSE
          PIXEL1 <= FONT_ROW0(2);
        END IF;
        PIXEL2   <= FONT_ROW0(1 DOWNTO 0);
        PIXEL4   <= FONT_ROW1(3 DOWNTO 0);
-------------------------------------------------------------------------------
      WHEN "110" =>

        IF ( FONT_8Pix = '0' AND COLs0(3) = '0' ) THEN
          PIXEL1 <= FONT_ROW0(9);
        ELSE
          PIXEL1 <= FONT_ROW0(1);
        END IF;
        PIXEL2   <= FONT_ROW0(15 DOWNTO 14);
        PIXEL4   <= FONT_ROW0(15 DOWNTO 12);
-------------------------------------------------------------------------------
      WHEN "111" =>

        IF ( FONT_8Pix = '0' AND COLs0(3) = '0' ) THEN
          PIXEL1 <= FONT_ROW0(8);
        ELSE
          PIXEL1 <= FONT_ROW0(0);
        END IF;
        PIXEL2   <= FONT_ROW0(13 DOWNTO 12);
        PIXEL4   <= FONT_ROW0(11 DOWNTO 8);

      END CASE;

    END IF;
END PROCESS;
User avatar
fifan
Devil
Posts: 912
Joined: 06 Oct 2006 03:17
Location: г.Лянтор,Сургутского р-на,ХМАО

Re: Ктонить в FPGA/VHDL разбирается ?

Post by fifan »

В этой абракадабре может разобраться только сам автор. Никакого описания переменных я не вижу.
imsushka
Maniac
Posts: 237
Joined: 01 Jan 2022 04:34
Location: USSR, Tashkent

Re: Ктонить в FPGA/VHDL разбирается ?

Post by imsushka »

fifan wrote:В этой абракадабре может разобраться только сам автор. Никакого описания переменных я не вижу.
я ужо сделал. или не савсем сделал. но вроде работает.

если я выложу файлы, то лучше не станет. там столько мусора от переделок.....

вот начал очередную переделку. хотелось скрола добавить, плавного
You do not have the required permissions to view the files attached to this post.
imsushka
Maniac
Posts: 237
Joined: 01 Jan 2022 04:34
Location: USSR, Tashkent

Re: Ктонить в FPGA/VHDL разбирается ?

Post by imsushka »

Решил выложить на гитхаб.
https://github.com/imsushka/TangNano20K-VIDEO.git

оказыцца в 2011 зарегался там.
azesmbog
Novelist
Posts: 28
Joined: 15 Jun 2018 16:58

Re: Ктонить в FPGA/VHDL разбирается ?

Post by azesmbog »

imsushka wrote:Решил выложить на гитхаб.
https://github.com/imsushka/TangNano20K-VIDEO.git

оказыцца в 2011 зарегался там.
Авот для совсем чайников, можно ли ПОЛНЫЙ проект, который собирается, и не ругается на отсутствующие файлы counta, fontRom, shift, etc...? Ну чтобы на экране увидеть хоть что-то, что задумал автор??
И еще.. В этом проекте конечно задействован RAM Controller.
Так вот, не могли бы Вы помочь прицеплить его же в известный проект Radio-86RK ? У меня честно не хватает скиллов на это, уж очень кЕтайцы замороченно сделали работу с SDRAM :((
imsushka
Maniac
Posts: 237
Joined: 01 Jan 2022 04:34
Location: USSR, Tashkent

Re: Ктонить в FPGA/VHDL разбирается ?

Post by imsushka »

azesmbog wrote:
imsushka wrote:Решил выложить на гитхаб.
https://github.com/imsushka/TangNano20K-VIDEO.git

оказыцца в 2011 зарегался там.
Авот для совсем чайников, можно ли ПОЛНЫЙ проект, который собирается, и не ругается на отсутствующие файлы counta, fontRom, shift, etc...? Ну чтобы на экране увидеть хоть что-то, что задумал автор??
И еще.. В этом проекте конечно задействован RAM Controller.
Так вот, не могли бы Вы помочь прицеплить его же в известный проект Radio-86RK ? У меня честно не хватает скиллов на это, уж очень кЕтайцы замороченно сделали работу с SDRAM :((
полный архив лежит выше на 2 сообщения
и он компилицца

и вроде эти файлы не нужны.
да, квартус сам подключает файлы и отключает, а говин ручками надо.
исправлю / исправил !!!

sdram - я смог запустить только на 66 мгц. 166 как обещано не смог
использовать файл sdram.v задержка на 4 такта.
imsushka
Maniac
Posts: 237
Joined: 01 Jan 2022 04:34
Location: USSR, Tashkent

Re: Ктонить в FPGA/VHDL разбирается ?

Post by imsushka »

z80 счас отключен, так как не могу доделать скалер. и хочу видеть все режимы.

если кто захочет
файл video_top.v

Code: Select all

vga u_vga(
    .clk		(CLK_65MHz    ),//pixel clock
    .RESET_n		(rst_n        ),//low active 

//    .CSMEM (wr_vga),
//    .CSREG (io_vga),
    .CSMEM		(1'b1),
    .CSREG		(1'b1),

поменять местами закоменнтированное

о sdram
есть еще файл ram.vhd и он просто обертка к sdram.v зачем не знаю
сам кусок вырвал из какой то реализации синклера
вот гитхаб tang20k-speccy
azesmbog
Novelist
Posts: 28
Joined: 15 Jun 2018 16:58

Re: Ктонить в FPGA/VHDL разбирается ?

Post by azesmbog »

imsushka wrote:
полный архив лежит выше на 2 сообщения
и он компилицца
да, слона то я и не заметил. Так да, компилиЦЦа, красивые цветные полосочки из бувк.

гитхаб tang20k-speccy
знаю этот гитхаб, Карпова. Этот проект так и не запустил, скорее всего не понимаю, надо бы ром-файлы во флеш загрузить, но там в описании этого нет, ну и на экране соответственно ничего нет, и esxdos соответственно не могу попробовать. какая жаль.

я обертку для SDRAM из другого проекта пробовал. На экране даже иногда что-то ВГ75 изображала, но заветной надписи так и не добился :( Ну не умею я готовить я эту памИть, там то два сигнала управления, или в них запутался, или одно из двух.
Ладно, жить еще долго, может и разберусь когда :)
imsushka
Maniac
Posts: 237
Joined: 01 Jan 2022 04:34
Location: USSR, Tashkent

Re: Ктонить в FPGA/VHDL разбирается ?

Post by imsushka »

azesmbog wrote: да, слона то я и не заметил. Так да, компилиЦЦа, красивые цветные полосочки из бувк.

гитхаб tang20k-speccy
Ну не умею я готовить я эту памИть, там то два сигнала управления, или в них запутался, или одно из двух.
Ладно, жить еще долго, может и разберусь когда :)
я тоже замучился и использовал BRAM
мне sdram по таймингам не подходють, или я готовить не умею

буквы нужны шо б понять работает или нет.
а так можно z80 подключить и там тестовая прошивка запускается
проверяет доступ к sdram и выводит так же букофки, но чуть по проще
и цветом задаю есть sdram или нет и работает ли мапер или нет
imsushka
Maniac
Posts: 237
Joined: 01 Jan 2022 04:34
Location: USSR, Tashkent

Re: Ктонить в FPGA/VHDL разбирается ?

Post by imsushka »

обновил все

вроде работает
включил Z80 - програмка типа демо запускается

остался одын глюк
почему то цвет знакоместа берется от следующего знакоместа. мозг сломал.

на асме разучился писать
копи-паст - зло, но лень всегда побеждает зло !