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

User Tag List

Страница 13 из 25 ПерваяПервая ... 91011121314151617 ... ПоследняяПоследняя
Показано с 121 по 130 из 242

Тема: Специалист МХ2: реализация в CPLD

  1. #121
    Guru Аватар для HardWareMan
    Регистрация
    26.02.2011
    Адрес
    г. Павлодар, Казахстан
    Сообщений
    4,404
    Спасибо Благодарностей отдано 
    318
    Спасибо Благодарностей получено 
    597
    Поблагодарили
    443 сообщений
    Mentioned
    10 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Короче, у меня тут аврал и времени на это не хватает. Делайте как знаете. Ставь 100 ног, заводи все адреса полностью. Между ними сделай несколько связей - так точно не промахнешься.

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

  3. #122
    Moderator Аватар для fifan
    Регистрация
    30.05.2007
    Адрес
    г. Лянтор, Сургутского р-на, ХМАО
    Сообщений
    4,165
    Спасибо Благодарностей отдано 
    106
    Спасибо Благодарностей получено 
    125
    Поблагодарили
    71 сообщений
    Mentioned
    4 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от HardWareMan Посмотреть сообщение
    Короче, у меня тут аврал и времени на это не хватает. Делайте как знаете. Ставь 100 ног, заводи все адреса полностью. Между ними сделай несколько связей - так точно не промахнешься.
    Я так и сделал, ждёмс только тебя.

  4. #123
    Moderator Аватар для fifan
    Регистрация
    30.05.2007
    Адрес
    г. Лянтор, Сургутского р-на, ХМАО
    Сообщений
    4,165
    Спасибо Благодарностей отдано 
    106
    Спасибо Благодарностей получено 
    125
    Поблагодарили
    71 сообщений
    Mentioned
    4 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Мы дождёмся?

  5. #124
    Guru Аватар для HardWareMan
    Регистрация
    26.02.2011
    Адрес
    г. Павлодар, Казахстан
    Сообщений
    4,404
    Спасибо Благодарностей отдано 
    318
    Спасибо Благодарностей получено 
    597
    Поблагодарили
    443 сообщений
    Mentioned
    10 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от HardWareMan Посмотреть сообщение
    Делайте как знаете.
    Это относится не только к плате но и к коду в CPLD. Мне больше этот проект не интересен.

  6. #125
    Moderator Аватар для fifan
    Регистрация
    30.05.2007
    Адрес
    г. Лянтор, Сургутского р-на, ХМАО
    Сообщений
    4,165
    Спасибо Благодарностей отдано 
    106
    Спасибо Благодарностей получено 
    125
    Поблагодарили
    71 сообщений
    Mentioned
    4 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Мне тоже не интересен, закрываю тему.

  7. #126
    Moderator Аватар для fifan
    Регистрация
    30.05.2007
    Адрес
    г. Лянтор, Сургутского р-на, ХМАО
    Сообщений
    4,165
    Спасибо Благодарностей отдано 
    106
    Спасибо Благодарностей получено 
    125
    Поблагодарили
    71 сообщений
    Mentioned
    4 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    А не всё таки столько сил потрачено, нужно уж допинать до конца. Есть у меня сырки по VGA видеоадптеру совместим с селектором адресов МХ2. Одобряете?

  8. #127
    Veteran Аватар для Павел Рябцов
    Регистрация
    15.03.2009
    Адрес
    г. Кинешма, Ивановская обл.
    Сообщений
    1,406
    Спасибо Благодарностей отдано 
    34
    Спасибо Благодарностей получено 
    26
    Поблагодарили
    18 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Да ладно? Вы как дети право, хотел вчера написать, да тема закрыта была. Давайте все по своим домам разбредемся и закроем на фиг форум. Мужики хватит ерундой заниматься. Игорь, давайте доделаем, найдите время, Виталий, надо спокойней ко всему относиться.

  9. #128
    Moderator Аватар для fifan
    Регистрация
    30.05.2007
    Адрес
    г. Лянтор, Сургутского р-на, ХМАО
    Сообщений
    4,165
    Спасибо Благодарностей отдано 
    106
    Спасибо Благодарностей получено 
    125
    Поблагодарили
    71 сообщений
    Mentioned
    4 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    По полочкам:
    - сырцы для VGA видеоадаптера позаимствую у Ewgeny7, когда-то опробованные на Специалисте на девборде U10 Reverse;
    - селектор адресов от Специалиста МХ2 нужно будет писать с самого начала;
    - добавлять пины (определение в Квартусе) буду по мере надобности.

    Сейчас начал писать проект первой плисины. В ней будут: видеоадаптер, формирователь сигнала сброса (удинение импульса от клавиатуры). Будете смеяться, но если просмотрев исходники от U10, можно обнаружить, что в качестве входной частоты используется 16 МГц (у нас на плате стоит кварцевый генератор). Да, VGA видеоадаптер будет на этой частоте работать.

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

    Пока такие результаты компиляции:
    Flow Status Successful - Sat Oct 06 19:16:49 2018
    Quartus II 64-Bit Version 13.0.1 Build 232 06/12/2013 SP 1 SJ Web Edition
    Revision Name spetsialist_mx2_cpld_1
    Top-level Entity Name spets_mx2_1
    Family MAX7000S
    Device EPM7128STC100-15
    Timing Models Final
    Total macrocells 70 / 128 ( 55 % )
    Total pins 79 / 84 ( 94 % )
    Много предупреждений (72), ошибок нет.
    Текст исходника приведу позже.
    Последний раз редактировалось fifan; 06.10.2018 в 18:16.

  10. #129
    Guru Аватар для HardWareMan
    Регистрация
    26.02.2011
    Адрес
    г. Павлодар, Казахстан
    Сообщений
    4,404
    Спасибо Благодарностей отдано 
    318
    Спасибо Благодарностей получено 
    597
    Поблагодарили
    443 сообщений
    Mentioned
    10 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Синхрогенератор проще, чем вы думаете.
    Код:
    // MX2 Address Chipset
    module MX2_CPLD_VID(
    	// Системные входы
    	input	Clk,				// Тактирование
    	input	nRES,				// Кнопка сброса
    	input	Fast,				// Сигнал скорости 2,5МГц
    	// Интерфейс процессора
    	output	reg nF1,			// Инверсная фаза F1 для ВМ80
    	output	reg nF2,			// Инверсная фаза F2 для ВМ80, тактовая для Z80
    	input	[15:0]A,			// Входной адрес от процессора
    	output	reg RST,			// Выход положительного синхронного уровня сброса
    	// Интерфейс памяти
    	output	[15:0]MA,			// Адрес на ОЗУ
    	input	[7:0]MD,			// Данные ОЗУ графика
    	input	[7:0]CD,			// Данные ОЗУ цвет
    	// Интерфейс арбитра
    	output	SnC,				// Арбитраж обращения
    	input	MX,					// Выбор режима MX
    	// Видеовыход
    	output	reg [1:0]R,			// Пиксели красный
    	output	reg [1:0]G,			// Пиксели зеленый
    	output	reg [1:0]B,			// Пиксели синий
    	output	reg HSync,			// Горизонтальная синхронизация
    	output	reg VSync			// Вертикальная синхронизация
    );
    
    // Синхрогенератор
    reg [6:0]Arb;					// Арбитер цикла ОЗУ
    reg FSL;						// Синхронизация входного сигнала
    wire [1:0]Red;					// Текущий цвет пикселя красного
    wire [1:0]Green;				// Текущий цвет пикселя зеленого
    wire [1:0]Blue;					// Текущий цвет пикселя синего
    reg [7:0]Shift;					// Сдвиговый регистр
    reg [7:0]Atrib;					// Регистр атрибутов
    reg MXR;						// Синхронизация входа цветового режима
    reg [6:0]X;						// Горизонтальный счетчик
    reg HBlank;						// Горизонтальное гашение
    reg [9:0]Y;						// Вертикальный счетчик
    
    // Ассинхронная логика
    assign SnC = Arb[3] & Arb[2];
    assign MA[15:0] = (Arb[3] & Arb[2]) ? {2'h2,X[5:0],Y[8:1]} : A[15:0];
    // Биты цвета
    assign Red[0]   = ~HBlank & ~Y[9] & ((Shift[7] & Atrib[6]) | (~Shift[7] & Atrib[2]));
    assign Green[0] = ~HBlank & ~Y[9] & ((Shift[7] & Atrib[5]) | (~Shift[7] & Atrib[1]));
    assign Blue[0]  = ~HBlank & ~Y[9] & ((Shift[7] & Atrib[4]) | (~Shift[7] & Atrib[0]));
    // Биты яркости
    assign Red[1]   = ~HBlank & ~Y[9] & ((~MXR & (Shift[7] & Atrib[6])) | (MXR & ((Shift[7] & Atrib[7]) | (~Shift[7] & Atrib[3]))));
    assign Green[1] = ~HBlank & ~Y[9] & ((~MXR & (Shift[7] & Atrib[5])) | (MXR & ((Shift[7] & Atrib[7]) | (~Shift[7] & Atrib[3]))));
    assign Blue[1]  = ~HBlank & ~Y[9] & ((~MXR & (Shift[7] & Atrib[4])) | (MXR & ((Shift[7] & Atrib[7]) | (~Shift[7] & Atrib[3]))));
    
    // Синхронная логика
    always @(posedge Clk) begin
    	// Счетчик цикла
    	if (Arb[6] & ~Arb[5] & ~Arb[4] & Arb[3] & Arb[2] & Arb[1] & Arb[0]) Arb[6:0] <= 7'h00; else Arb[6:0] <= Arb[6:0] + 7'h01;
    	// Синхронизация замедлителя
    	if (Arb[6] & ~Arb[5] & ~Arb[4] & Arb[3] & Arb[2] & Arb[1] & Arb[0]) FSL <= ~Fast;
    	// Арбитраж работает на скорости пиксельклока
    	if (Arb[0]) begin
    		// Выходные пиксели
    		R[1:0] <= Red[1:0]; G[1:0] <= Green[1:0]; B[1:0] <= Blue[1:0];
    		// Режим MX
    		MXR <= MX;
    		// Сигналы процессора
    		if (Arb[1]) nF1 <= (FSL & Arb[6]) | ~(~Arb[3] & Arb[2]);
    		if (Arb[1]) nF2 <= ~(FSL & Arb[6]) & ~Arb[3];
    		// Сигналы сдвигового регистра и регистра атрибутов
    		if (Arb[3] & Arb[2] & Arb[1]) begin
    			// Загружаем оба
    			{Atrib[7:0],Shift[7:0]} <= {CD[7:0],MD[7:0]};
    			// Горизонтальное гашение
    			if (~X[6] & X[4] & ~X[3] & ~X[2] & ~X[1] & ~X[0]) HBlank <= 1'b0;
    				else if (X[6]) HBlank <= 1'b1;
    			end else Shift[7:0] <= {Shift[6:0],1'b0};
    		// Горизонтальный счетчик
    		if (~Arb[3] & Arb[2] & Arb[1]) begin
    			// Считаем горизонтальную координату
    			if (X[6] & X[0]) begin
    				// Обнуляем горизонтальный счетчик
    				X[6:0] <= 7'h00;
    				// Вертикальный счетчик
    				if (Y[9] & Y[6] & Y[5] & Y[4] & Y[2]) begin
    					// Обнуляем счетчик
    					Y[9:0] <= 10'h000;
    					// Синхронизируем сброс
    					RST <= ~nRES;
    					end else Y[9:0] <= Y[9:0] + 10'h001;
    				// Вертикальная синхра
    				VSync <= ~(Y[9] & ~Y[6] & Y[5] & ~Y[4] & Y[3] & Y[2]);
    				end else X[6:0] <= X[6:0] + 7'h01;
    			// Горизонтальная синхра
    			if (X[3] & X[0]) HSync <= 1'b1;
    				else if (HBlank & ~X[6] & ~X[3] & X[0]) HSync <= 1'b0;
    			end
    		end
    end
    
    // Конец
    endmodule

    Варнинг:
    Warning: Timing Analysis does not support the analysis of latches as synchronous elements for the currently selected device family
    И симуляция:

    Сигнал MX задает логику атрибутов MX/STD, при этом в режиме STD яркость каждого канала максимальна (чего нет у микросхемного MX2). В общем, ковыряйтесь.
    Последний раз редактировалось HardWareMan; 06.10.2018 в 20:25.

  11. #130
    Moderator Аватар для fifan
    Регистрация
    30.05.2007
    Адрес
    г. Лянтор, Сургутского р-на, ХМАО
    Сообщений
    4,165
    Спасибо Благодарностей отдано 
    106
    Спасибо Благодарностей получено 
    125
    Поблагодарили
    71 сообщений
    Mentioned
    4 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Ну вот, HardWareMan, могём! Большое спасибо за код. Я его, если ты не против, вставлю в виде модуля без изменений. Частота Clk = 40 МГц? Хотя я писал, что у меня синхрогенератор и на 16 МГц работает, но с моим кодом. Твой код изяшнее, и самое главное уже причёсан и проверен. Ещё раз спасибо.

    Во второй плисине поменьше на много предупреждений, но я там ещё не вставил диспетчер верхних адресов RAM-диска и эмулятор порта программатора. Я уже писал, что ради одного применяемого сигнала KA0 (R5) я решил не ставить реальную ВВ55, а эмулировать её.
    Последний раз редактировалось fifan; 12.09.2022 в 17:12.

Страница 13 из 25 ПерваяПервая ... 91011121314151617 ... ПоследняяПоследняя

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

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

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

Похожие темы

  1. Ответов: 135
    Последнее: 02.12.2021, 22:50
  2. Специалист МХ2. Сборка на плате VER. 2.2
    от vernigor в разделе Специалист
    Ответов: 20
    Последнее: 06.05.2017, 07:51
  3. Ответов: 65
    Последнее: 14.11.2014, 08:05

Ваши права

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