Важная информация

User Tag List

Страница 157 из 166 ПерваяПервая ... 153154155156157158159160161 ... ПоследняяПоследняя
Показано с 1,561 по 1,570 из 1659

Тема: ПЛИС и всё что с ними связано

  1. #1561
    Activist Аватар для omercury
    Регистрация
    13.02.2016
    Адрес
    г. Королёв
    Сообщений
    440
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    8
    Поблагодарили
    7 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Bolt Посмотреть сообщение
    Вот тут не понял. Что, если взять с PLL две разных частоты и завести на два триггера, то автоматически избавимся от метастабильности?
    Картинку с "плывущей" фазой двух синхросигналов относительно друг друга рисовать или сами представите?
    Если на каждый из триггеров подать по разному клоку, то на их выходах получатся сигналы с частотой этих клоков, но задержанные на неопределённое время, зависящее от фазы луны, солнечного ветра и погоды на Марсе/Сникерсе/Баунти. И они не будут клоками.
    Если на тактовые входы этих триггеров подать клок максимально имеющейся в системе частоты, а на входы данных триггеров подать 2 клока с PLL, то на выходах этих триггеров будут сигналы, сихронизированные с той максимальной частотой системы и они таки будут избавлены от метастабильности относительно этой самой частоты, но клоками они от этого не станут.
    Если на тактовые входы всех триггеров, образующих систему тактирования, подать одну, максимально возможную частоту в системе тактирования, разместить их максимально близко друг к другу на отдельном кристалле (или максимально изолированной части общего кристалла) да запитать их от отдельного источника, то выходы этих триггеров, а вовсе не образующий их клок, подключенные к специально разведённым по площади всего кристалла линиям с минимальной задержкой, можно считать клоками, избавляющими от метастабильности те самые сигналы, описанные в предыдущем абзаце.


    Цитата Сообщение от Bolt Посмотреть сообщение
    Для лучшего понимания чего?
    Вот именно этого самого.
    Те 2 триггера, если и будут подключены к клоковым линиям, то через несколько ключей, каждый из которых вносит свою, малопрогнозируемую задержку, помноженную на столь же малопрогнозируемую задержку соседнего ключа, включенного с предыдущим последовательно.

    - - - Добавлено - - -

    Цитата Сообщение от dosikus Посмотреть сообщение
    Да у процессора 2 8ми битных порта чисто вход и 2 чисто выход.
    Но память-то у него куда-то подключена?
    Хоть 256 байт-то есть?

    (которую корку, кстати, юзаешь?)

  2. #1561
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

  3. #1562
    Veteran Аватар для dosikus
    Регистрация
    29.03.2005
    Адрес
    Ярославль
    Сообщений
    1,092
    Спасибо Благодарностей отдано 
    13
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от omercury Посмотреть сообщение
    Ага, то есть Гарвардская архитектура - отдельно память программ, отдельно память данных, так?
    Угу.
    Цитата Сообщение от omercury Посмотреть сообщение
    Теперь по организации памяти, я предлагаю такую - Вложение 70020
    Я за. А что такое b7 и b15?

    - - - Добавлено - - -

    Цитата Сообщение от omercury Посмотреть сообщение

    Но память-то у него куда-то подключена?
    Хоть 256 байт-то есть?

    (которую корку, кстати, юзаешь?)
    ВотЪ - https://github.com/jaruiz/light52
    Я так понимаю это продолжение сего https://opencores.org/projects/light52
    На гите в доках вполне приличное описание .
    256 bytes of IRAM -- fixed size
    И сразу вопрос -
    Автор использует свой конвертер hex => шаблон на VHDL , в верилоге я так понимаю можно hex сразу грузить?
    Последний раз редактировалось dosikus; 19.09.2019 в 08:15.
    ZXM-Phoenix 1024+PROF ROM+SMUC+VGA
    Profi 1024+CF+CPM+VGA
    ATARI 800XL+SIO2PC+SIO2SD
    RK86@Maximite

  4. #1563
    Veteran Аватар для dosikus
    Регистрация
    29.03.2005
    Адрес
    Ярославль
    Сообщений
    1,092
    Спасибо Благодарностей отдано 
    13
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Нашел здесь генератор синхроимпульсов VGA640x480 http://baltazarstudios.com/poem-fpga/
    Прикрутил его к своему HDMI, пока 640х480.

    https://dropmefiles.com/WI44s

    omercury, как в верилоге прописывать константы и условную компиляцию - хочу тайминги перевести на 800х600 и что бы их ручками не перебивать.

    // Module VGA_SYNC
    //
    // Generates output sync signals to drive VGA display in 640x480 pixel mode:
    //
    // Refresh rate: 60 Hz
    // Vert. refresh: 31.46 kHz
    // Pixel frequency: 25.175 MHz
    //
    // Horizontal timing (pixels) Vertical timing (pixels)
    // Visible area: 640 480
    // Front porch: 16 10
    // Sync pulse: 96 2
    // Back porch: 48 33
    // Whole line: 800 525

    module vga_sync (

    input clk_in, // Input 25.175 MHz clock, this is a pixel clock for this VGA mode
    input reset, // Input async. active low reset signal

    output reg vga_hsync, // Output horizontal sync signal
    output reg vga_vsync, // Output vertical sync signal

    output reg disp_enable, // Set when a writable portion of display is enabled:
    output reg[9:0] pix_x, // x-coordinate of an active pixel
    output reg[9:0] pix_y // y-coordinate of an active pixel
    );
    //================================================== ====================

    localparam SYNC_ON = 1'b0; // Define the polarity of sync pulses
    localparam SYNC_OFF = 1'b1;

    reg[9:0] line_count; // Line counter, current line
    reg[9:0] pix_count; // Pixel counter, current pixel

    always @( posedge clk_in or negedge reset )
    begin
    if (!reset) begin
    line_count <= 0; // On a reset, restart counters from 0
    pix_count <= 0;
    end else begin

    pix_count <= pix_count + 1;// Increment a pixel counter every clock time!

    // This is a state machine based on a pixel count. Since VGA modes timings are
    // based on a multiple of pixel counts, we add them up and generate syncs at
    // proper times
    case (pix_count)
    0: vga_hsync <= SYNC_OFF;
    16: vga_hsync <= SYNC_ON;
    112: vga_hsync <= SYNC_OFF;
    800: begin
    line_count <= line_count + 1;
    pix_count <= 0;
    end
    endcase

    // Properly toggle vertical sync based on the current line count
    case (line_count)
    0: vga_vsync <= SYNC_OFF;
    10: vga_vsync <= SYNC_ON;
    12: vga_vsync <= SYNC_OFF;
    525: begin
    line_count <= 0;
    end
    endcase

    // The following code defines a drawable display region and outputs
    // disp_enable to 1 when within that region. Also, set the pixel coordinates
    // (normalized to the top-left edge of a drawable region)
    disp_enable <= 0;
    pix_x <= 0;
    pix_y <= 0;
    if (line_count>=35 && line_count<515)
    begin
    if (pix_count>=160 && pix_count<800)
    begin
    disp_enable <= 1;
    pix_x <= pix_count - 10'd160;
    pix_y <= line_count - 10'd35;
    end
    end
    end
    end

    endmodule
    И здесь наверное надо добавить глобальный счетчик пикселей( АДРЕС) для вычитки из RAM?
    Последний раз редактировалось dosikus; 19.09.2019 в 15:23.
    ZXM-Phoenix 1024+PROF ROM+SMUC+VGA
    Profi 1024+CF+CPM+VGA
    ATARI 800XL+SIO2PC+SIO2SD
    RK86@Maximite

  5. #1564
    Activist Аватар для omercury
    Регистрация
    13.02.2016
    Адрес
    г. Королёв
    Сообщений
    440
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    8
    Поблагодарили
    7 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от dosikus Посмотреть сообщение
    как в верилоге прописывать константы
    `define
    parameter
    localparam

    Цитата Сообщение от dosikus Посмотреть сообщение
    и условную компиляцию
    `ifdef / `ifndef - `elsif - `else - `endif


    Цитата Сообщение от dosikus Посмотреть сообщение
    И здесь наверное надо добавить глобальный счетчик пикселей( АДРЕС) для вычитки из RAM?
    Ага, и сделать его вычисляемым из всех параметров.
    Вот здесь пример.

    - - - Добавлено - - -

    Цитата Сообщение от dosikus Посмотреть сообщение
    А что такое b7 и b15
    Это я так старший бит данных обозвал.


    Цитата Сообщение от dosikus Посмотреть сообщение
    в верилоге я так понимаю можно hex сразу грузить?
    Да, можно как и свой .mif, так и интел хекс.

    - - - Добавлено - - -

    Цитата Сообщение от dosikus Посмотреть сообщение
    На гите в доках вполне приличное описание .
    256 bytes of IRAM -- fixed size
    Ага, но адресация 16-битная.

    xdata_addr : out std_logic_vector(15 downto 0);
    Вложения Вложения

  6. #1565
    Veteran Аватар для dosikus
    Регистрация
    29.03.2005
    Адрес
    Ярославль
    Сообщений
    1,092
    Спасибо Благодарностей отдано 
    13
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Вот это ж...
    Modelsim напрочь не хочет симулить винегрет из верилога и вхдл...

    - - - Добавлено - - -

    Нужна помощь.
    Переделал видеогенератор что приводил выше .
    Перенес синхроимпульсы с начала строки и кадра назад и изображение растянулось по горизонтали, монитор говорит что режим в порядке.


    // Module VGA_SYNC
    //
    // Generates output sync signals to drive VGA display in 640x480 pixel mode:
    //
    // Refresh rate: 60 Hz
    // Vert. refresh: 31.46 kHz
    // Pixel frequency: 25.175 MHz
    //
    // Horizontal timing (pixels) Vertical timing (pixels)
    // Visible area: 640 480
    // Front porch: 16 10
    // Sync pulse: 96 2
    // Back porch: 48 33
    // Whole line: 800 525

    module vga_sync (

    input clk_in, // Input 25.175 MHz clock, this is a pixel clock for this VGA mode
    input reset, // Input async. active low reset signal

    output reg vga_hsync, // Output horizontal sync signal
    output reg vga_vsync, // Output vertical sync signal

    output reg disp_enable, // Set when a writable portion of display is enabled:
    output reg[9:0] pix_x, // x-coordinate of an active pixel
    output reg[9:0] pix_y // y-coordinate of an active pixel
    );
    //================================================== ====================

    localparam SYNC_ON = 1'b0; // Define the polarity of sync pulses
    localparam SYNC_OFF = 1'b1;

    reg[9:0] line_count; // Line counter, current line
    reg[9:0] pix_count; // Pixel counter, current pixel

    always @( posedge clk_in or negedge reset )
    begin
    if (!reset) begin
    line_count <= 0; // On a reset, restart counters from 0
    pix_count <= 0;
    end else begin

    pix_count <= pix_count + 1'b1;// Increment a pixel counter every clock time!

    // This is a state machine based on a pixel count. Since VGA modes timings are
    // based on a multiple of pixel counts, we add them up and generate syncs at
    // proper times




    case (pix_count)
    0: vga_hsync <= SYNC_OFF;
    656: vga_hsync <= SYNC_ON;
    752: vga_hsync <= SYNC_OFF;
    800: begin
    line_count <= line_count + 1'b1;
    pix_count <= 0;
    end
    endcase

    // Properly toggle vertical sync based on the current line count

    case (line_count)
    0: vga_vsync <= SYNC_OFF;
    490: vga_vsync <= SYNC_ON;
    492: vga_vsync <= SYNC_OFF;
    525: line_count <= 0;

    endcase


    // The following code defines a drawable display region and outputs
    // disp_enable to 1 when within that region. Also, set the pixel coordinates
    // (normalized to the top-left edge of a drawable region)
    disp_enable <= 0;
    pix_x <= 0;
    pix_y <= 0;
    if (line_count>=0 && line_count<480)
    begin
    if (pix_count>=0 && pix_count<640)
    begin
    disp_enable <= 1;
    pix_x <= pix_count;
    pix_y <= line_count;
    end
    end
    end
    end

    endmodule
    Последний раз редактировалось dosikus; 20.09.2019 в 11:06.
    ZXM-Phoenix 1024+PROF ROM+SMUC+VGA
    Profi 1024+CF+CPM+VGA
    ATARI 800XL+SIO2PC+SIO2SD
    RK86@Maximite

  7. #1566
    Activist
    Регистрация
    14.04.2013
    Адрес
    г. Ростов-на-Дону
    Сообщений
    449
    Спасибо Благодарностей отдано 
    27
    Спасибо Благодарностей получено 
    15
    Поблагодарили
    13 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    На первый взгляд всё правильно.
    В коде нет формирования изображения, blank (disp_enable) правильно учитывается? Растянутость и странная яркость может быть из-за отсутствия гашения.
    Фото растянутого экрана можно?

  8. #1567
    Veteran Аватар для dosikus
    Регистрация
    29.03.2005
    Адрес
    Ярославль
    Сообщений
    1,092
    Спасибо Благодарностей отдано 
    13
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Bolt, blank - disp_enable. Если оно подходит, в чем не уверен...
    И все таки это какой-то глюк монитора на 640х480 .
    Если я запускаю автонастройку на этом синхрогенераторе , что на переделанном что на оригинале - растягивает и все .
    Помогает запуск чужой прошивки и автонастройка.

    А может из-за того что я изображение по дикому делаю не учитывая ничего...

    vga_r <= (px_x(6 downto 0)) and "11111111";
    vga_b<= (px_x(6 downto 0)) and "11111111";


    хрень какая-то ))))))

    Вывел рамку по краям - все стало норм и автонастройка четко срабатывает.

    vga_r <= "11111111" when px_x=0 or px_x=639 or px_y =0 or px_y=479 else (px_x(6 downto 0)) and "11111111";
    vga_b<= "11111111" when px_x=0 or px_x=639 or px_y =0 or px_y=479 else (px_x(6 downto 0)) and "11111111";
    Последний раз редактировалось dosikus; 20.09.2019 в 15:19.
    ZXM-Phoenix 1024+PROF ROM+SMUC+VGA
    Profi 1024+CF+CPM+VGA
    ATARI 800XL+SIO2PC+SIO2SD
    RK86@Maximite

  9. #1568
    Activist
    Регистрация
    14.04.2013
    Адрес
    г. Ростов-на-Дону
    Сообщений
    449
    Спасибо Благодарностей отдано 
    27
    Спасибо Благодарностей получено 
    15
    Поблагодарили
    13 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от dosikus Посмотреть сообщение
    Вывел рамку по краям - все стало норм и автонастройка четко срабатывает.
    Вот. Сам не могу понять этот эффект автонастройки, но влияет наличие не_чёрного во время гашения и синхроимпульсов. Может на RGB какие-то иголки с комбинационных схем пролазят, вот монитор и пытается их в кадр впихнуть?

  10. #1569
    Veteran Аватар для dosikus
    Регистрация
    29.03.2005
    Адрес
    Ярославль
    Сообщений
    1,092
    Спасибо Благодарностей отдано 
    13
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Переделал на 800х600"60Hz.
    Работает , рамка вписалась . Счас перепишу с константами и дефайнами и можно будет заняться ROM и RAM.
    omercury, Я тут чЁ подумал , может пока сделать ROM с знакогенератором? И объем внутренней памяти уменьшим и работу 51ого облегчим ...
    ZXM-Phoenix 1024+PROF ROM+SMUC+VGA
    Profi 1024+CF+CPM+VGA
    ATARI 800XL+SIO2PC+SIO2SD
    RK86@Maximite

  11. #1570
    Veteran Аватар для dosikus
    Регистрация
    29.03.2005
    Адрес
    Ярославль
    Сообщений
    1,092
    Спасибо Благодарностей отдано 
    13
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Продолжаю свою "эпопею".
    Подключил к телевизору - все прекрасно, 800х600@60Hz.
    ZXM-Phoenix 1024+PROF ROM+SMUC+VGA
    Profi 1024+CF+CPM+VGA
    ATARI 800XL+SIO2PC+SIO2SD
    RK86@Maximite

Страница 157 из 166 ПерваяПервая ... 153154155156157158159160161 ... ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. SMUC на дискретах и ПЛИС
    от spensor в разделе Scorpion
    Ответов: 787
    Последнее: 09.10.2019, 17:58
  2. ДВК (и всё, что с ними связано)
    от Grand в разделе ДВК, УКНЦ
    Ответов: 4185
    Последнее: 01.10.2019, 23:49
  3. Ответов: 978
    Последнее: 27.09.2019, 20:48
  4. PAL/GAL и все что с ними связано.
    от Mick в разделе Клоны на ПЛИС, МК и БМК
    Ответов: 409
    Последнее: 01.08.2019, 12:07
  5. Вопрос по ПЛИС
    от Zloy в разделе Unsorted
    Ответов: 23
    Последнее: 17.10.2015, 17:12

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •