User Tag List

Страница 23 из 33 ПерваяПервая ... 192021222324252627 ... ПоследняяПоследняя
Показано с 221 по 230 из 330

Тема: Любительская девборда на Z80

  1. #221
    ZEK
    Гость

    По умолчанию

    Цитата Сообщение от Mick Посмотреть сообщение
    А флаг переноса?
    C = A + B + Carry ?
    A,B к примеру 8 бит, С-9бит, 9 бит как знак переноса для следующего сумматора

  2. #222

    Регистрация
    14.06.2005
    Адрес
    г. Калуга
    Сообщений
    10,141
    Спасибо Благодарностей отдано 
    216
    Спасибо Благодарностей получено 
    769
    Поблагодарили
    417 сообщений
    Mentioned
    23 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от ZEK Посмотреть сообщение
    C = A + B + Carry ?
    A,B к примеру 8 бит, С-9бит, 9 бит как знак переноса для следующего сумматора
    Чтобы не гадать вот что надо просуммировать.
    Это кусок схемы с ошибкой, но суть не меняется.
    Миниатюры Миниатюры Нажмите на изображение для увеличения. 

Название:	summ.jpg 
Просмотров:	184 
Размер:	29.7 Кб 
ID:	42466  
    Сайт поддержки моих изделий - http://micklab.ru/
    Группа ВКонтакте - https://vk.com/micklab

  3. #223

    Регистрация
    31.03.2008
    Адрес
    Москва
    Сообщений
    735
    Спасибо Благодарностей отдано 
    10
    Спасибо Благодарностей получено 
    80
    Поблагодарили
    37 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Вроде так:
    VX <= ( V7 & V6 & V5 & V4 & H9 & H8 ) + ( '0' & V8 & V7 & V6 & V5 & V4 );
    ZXM-Phoenix rev.01 2048K, VG93 hw emulator

  4. #224

    Регистрация
    14.06.2005
    Адрес
    г. Калуга
    Сообщений
    10,141
    Спасибо Благодарностей отдано 
    216
    Спасибо Благодарностей получено 
    769
    Поблагодарили
    417 сообщений
    Mentioned
    23 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от IanPo Посмотреть сообщение
    Вроде так:
    VX <= ( V7 & V6 & V5 & V4 & H9 & H8 ) + ( '0' & V8 & V7 & V6 & V5 & V4 );
    Непонял немного.
    Я когда то на AHDL писал сумматор, вот поднял AHDL язык и чуток переложил. Получилось вот как, если чего не напутал.

    Код:
       	------------------------------------------------------------------------------------
        -- Формирование адресов VX
       	------------------------------------------------------------------------------------
    	VX5    <= H8 xor V4;
            VX5_CY <= (H8 and V4) or (H8 xor V4);
    
    	VX6    <= (H9 xor V5) xor VX5_CY ;
            VX6_CY <= (H9 and V5) or ((H9 xor V5) and VX5_CY);
            
    	VX7    <= V4 xor V6  xor VX6_CY;
            VX7_CY <= (V4 and V6) or ((V4 xor V6) and VX6_CY);
    
    	VX8    <= (V5 xor V7)  xor VX7_CY;
            VX8_CY <= (V5 and V7) or ((V5 xor V7) and VX7_CY);
    
    	VX9    <= (V6 xor V8) xor VX8_CY;
            VX9_CY <= (V6 and V8) or ((H9 xor V5) and VX8_CY);
    
    	VX10    <= (V7 xor '0') xor VX9_CY;
    Последний раз редактировалось Mick; 16.07.2013 в 19:48.
    Сайт поддержки моих изделий - http://micklab.ru/
    Группа ВКонтакте - https://vk.com/micklab

  5. #225
    ZEK
    Гость

    По умолчанию

    AHDL ассемблер, VHDL и Verilog это Pascal и C, то есть языки высокого уровня, где можно не замарачиваться с RTL уровнем а описывать алгоритмы поведенчески, они тебе сами нагенерят сумматоров, они и делители и умножители нагенерят, правда асихронные и медленные

    То что выше написали это конкатенация сигналов в векторы а потом сложение этих векторов

  6. #226

    Регистрация
    31.03.2008
    Адрес
    Москва
    Сообщений
    735
    Спасибо Благодарностей отдано 
    10
    Спасибо Благодарностей получено 
    80
    Поблагодарили
    37 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Mick, если бы писал модуль сумматора, то твой код вполне бы подошел. На VHDL такими вещами можно и не заморачиваться. Просто объединяй биты в слова, слова складывай - и все.
    Мне кажется, тебе надо книгу почитать для примера. Суворова, Шейнин Проектирование цифровых систем на VHDL или автора Бибило
    ZXM-Phoenix rev.01 2048K, VG93 hw emulator

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

  8. #227

    Регистрация
    14.06.2005
    Адрес
    г. Калуга
    Сообщений
    10,141
    Спасибо Благодарностей отдано 
    216
    Спасибо Благодарностей получено 
    769
    Поблагодарили
    417 сообщений
    Mentioned
    23 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от IanPo Посмотреть сообщение
    Мне кажется, тебе надо книгу почитать для примера. Суворова, Шейнин Проектирование цифровых систем на VHDL или автора Бибило
    Конечно надо, только это боюсь затянется. По мне быстрее научусь если по примеру мозгового штурма.


    Обмозговал раскладку памяти и как должны работать сумматоры, чтобы прибавлять 50h с каждой строкой (25 текстовых строк )

    Теоритическая раскладка
    Код:
     V8 V7 V6 V5 V4 H9 H8 H7 H6 H5 H4 H3                     VA11 VA10 VA9 VA8  VA7 VA6 VA5 VA4  VA3 VA2 VA1 VA0 
     0  0  0  0  0  0  0  0  0  0  0  0  - 1  строка 000h ->  0    0    0   0    0   0   0   0    0   0   0   0
     0  0  0  0  1  0  0  0  0  0  0  0  - 2  строка 050h ->  0    0    0   0    0   1   0   1    0   0   0   0
     0  0  0  1  0  0  0  0  0  0  0  0  - 3  строка 0A0h ->  0    0    0   0    1   0   1   0    0   0   0   0
     0  0  0  1  1  0  0  0  0  0  0  0  - 4  строка 0F0h ->  0    0    0   0    1   1   1   1    0   0   0   0
     0  0  1  0  0  0  0  0  0  0  0  0  - 5  строка 140h ->  0    0    0   1    0   1   0   0    0   0   0   0
     0  0  1  0  1  0  0  0  0  0  0  0  - 6  строка 190h ->  0    0    0   1    1   0   0   1    0   0   0   0
     0  0  1  1  0  0  0  0  0  0  0  0  - 7  строка 1E0h ->  0    0    0   1    1   1   1   0    0   0   0   0
     0  0  1  1  1  0  0  0  0  0  0  0  - 8  строка 230h ->  0    0    1   0    0   0   0   1    0   0   0   0
     0  1  0  0  0  0  0  0  0  0  0  0  - 9  строка 280h ->  0    0    1   0    1   0   0   0    0   0   0   0
     0  1  0  0  1  0  0  0  0  0  0  0  - 10 строка 2D0h ->  0    0    1   0    1   1   0   1    0   0   0   0
     0  1  0  1  0  0  0  0  0  0  0  0  - 11 строка 320h ->  0    0    1   1    0   0   1   0    0   0   0   0
     0  1  0  1  1  0  0  0  0  0  0  0  - 12 строка 370h ->  0    0    1   1    0   1   1   1    0   0   0   0
     0  1  1  0  0  0  0  0  0  0  0  0  - 13 строка 3C0h ->  0    0    1   1    1   1   0   0    0   0   0   0
     0  1  1  0  1  0  0  0  0  0  0  0  - 14 строка 410h ->  0    1    0   0    0   0   0   1    0   0   0   0
     0  1  1  1  0  0  0  0  0  0  0  0  - 15 строка 460h ->  0    1    0   0    0   1   1   0    0   0   0   0
     0  1  1  1  1  0  0  0  0  0  0  0  - 16 строка 4B0h ->  0    1    0   0    1   0   1   1    0   0   0   0
     1  0  0  0  0  0  0  0  0  0  0  0  - 17 строка 500h ->  0    1    0   1    0   0   0   0    0   0   0   0
     1  0  0  0  1  0  0  0  0  0  0  0  - 18 строка 550h ->  0    1    0   1    0   1   0   1    0   0   0   0
     1  0  0  1  0  0  0  0  0  0  0  0  - 19 строка 5A0h ->  0    1    0   1    1   0   1   0    0   0   0   0
     1  0  0  1  1  0  0  0  0  0  0  0  - 20 строка 5F0h ->  0    1    0   1    1   1   1   1    0   0   0   0
     1  0  1  0  0  0  0  0  0  0  0  0  - 21 строка 640h ->  0    1    1   0    0   1   0   0    0   0   0   0
     1  0  1  0  1  0  0  0  0  0  0  0  - 22 строка 690h ->  0    1    1   0    1   0   0   1    0   0   0   0
     1  0  1  1  0  0  0  0  0  0  0  0  - 23 строка 6E0h ->  0    1    1   0    1   1   1   0    0   0   0   0
     1  0  1  1  1  0  0  0  0  0  0  0  - 24 строка 730h ->  0    1    1   1    0   0   1   1    0   0   0   0
     1  1  0  0  0  0  0  0  0  0  0  0  - 25 строка 780h ->  0    1    1   1    1   0   0   0    0   0   0   0
    
    
     0  0  0  0 H9 H8 H7
    +
    V8 V7 V6 V5 V4  0  0
    +
     0  0 V8 V7 V6 V5 V4                     VX6 VX5  VX4  VX3 VX2 VX1 VX0
     
     0  0  0  0  0  0  0
     0  0  0  0  0  0  0 - 1  строка 000h ->   0   0    0    0   0   0   0   
     
     0  0  0  0  1  0  0
     0  0  0  0  0  0  1 - 2  строка 050h ->   0   0    0    0   1   0   1   
    
     0  0  0  1  0  0  0  
     0  0  0  0  0  1  0 - 3  строка 0A0h ->   0   0    0    1   0   1   0   
    
     0  0  0  1  1  0  0  
     0  0  0  0  0  1  1 - 4  строка 0F0h ->   0   0    0    1   1   1   1   
    
     0  0  1  0  0  0  0  
     0  0  0  0  1  0  0 - 5  строка 140h ->   0   0    1    0   1   0   0   
    
     0  0  1  0  1  0  0
     0  0  0  0  1  0  1 - 6  строка 190h ->   0   0    1    1   0   0   1   
    
     0  0  1  1  0  0  0
     0  0  0  0  1  1  0 - 7  строка 1E0h ->   0   0    1    1   1   1   0   
    
     0  0  1  1  1  0  0
     0  0  0  0  1  1  1 - 8  строка 230h ->   0   1    0    0   0   1   1   
    
     0  1  0  0  0  0  0 
     0  0  0  1  0  0  0 - 9  строка 280h ->   0   1    0    1   0   0   0   
    
     0  1  0  0  1  0  0 
     0  0  0  1  0  0  1  - 10 строка 2D0h ->  0   1    0    1   1   0   1   
    
     0  1  0  1  0  0  0  
     0  0  0  1  0  1  0  - 11 строка 320h ->  0   1    1    0   0   1   0 
    
     0  1  0  1  1  0  0  
     0  0  0  1  0  1  1  - 12 строка 370h ->  0   1    1    0   1   1   1   
      
     0  1  1  0  0  0  0  
     0  0  0  1  1  0  0  - 13 строка 3C0h ->  0   1    1    1   1   0   0 
    
     0  1  1  0  1  0  0  
     0  0  0  1  1  0  1  - 14 строка 410h ->  1   0    0    0   0   0   1   
      
     0  1  1  1  0  0  0  
     0  0  0  1  1  1  0  - 15 строка 460h ->  1   0    0    0   1   1   0   
    
     0  1  1  1  1  0  0  
     0  0  0  1  1  1  1  - 16 строка 4B0h ->  1   0    0    1   0   1   1   
    
     1  0  0  0  0  0  0  
     0  0  1  0  0  0  0  - 17 строка 500h ->  1   0    1    0   0   0   0
    
     1  0  0  0  1  0  0  
     0  0  1  0  0  0  1  - 18 строка 550h ->  1   0    1    0   1   0   1
    
     1  0  0  1  0  0  0  
     0  0  1  0  0  1  0  - 19 строка 5A0h ->  1   0    1    1   0   1   0   
    
     1  0  0  1  1  0  0  
     0  0  1  0  0  1  1  - 20 строка 5F0h ->  1   0    1    1   1   1   1
    
     1  0  1  0  0  0  0  
     0  0  1  0  1  0  0  - 21 строка 640h ->  1   1    0    0   1   0   0   
    
     1  0  1  0  1  0  0  
     0  0  1  0  1  0  1  - 22 строка 690h ->  1   1    0    1   0   0   1   
    
     1  0  1  1  0  0  0  
     0  0  1  0  1  1  0  - 23 строка 6E0h ->  1   1    0    1   1   1   0   
    
     1  0  1  1  1  0  0  
     0  0  1  0  1  1  1  - 24 строка 730h ->  1   1    1    0   0   1   1   
    
     1  1  0  0  0  0  0  
     0  0  1  1  0  0  0  - 25 строка 780h ->  1   1    1    1   0   0   0
    Общая раскладка ОЗУ



    Ну и во вложении кусок схемы с измененными сумматорами.
    Предыдущий файл я удалил за неактуальностью.
    Вложения Вложения
    • Тип файла: pdf ram.pdf (71.1 Кб, Просмотров: 160)
    Сайт поддержки моих изделий - http://micklab.ru/
    Группа ВКонтакте - https://vk.com/micklab

  9. #228

    Регистрация
    24.05.2005
    Адрес
    г. Запорожье, Украина
    Сообщений
    992
    Спасибо Благодарностей отдано 
    571
    Спасибо Благодарностей получено 
    365
    Поблагодарили
    239 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Mick Посмотреть сообщение
    Длительность прерывания 32 такта процессора.
    да так сделано в спектруме, но это не означает что так правильно )

    по хорошему нужно примерно так
    Код:
    --INT
    process(vsync,сpu_m1,cpu_iorq)
    begin
    	if (cpu_iorq and cpu_m1) = '1' then
    		cpu_int <= '0';
    	elsif vsync'event and vsync = '1' then
    		cpu_int <= '1';
    	end if;	
    end process;
    
    VGA_VSYNC <= vsync;
    правда квартус выдаст warning что клок vsync не прописан в sdc файле, поэтому нужно его там создать )

    p.s. активный уровень сигналов сpu_m1 и cpu_iorq - "1", для активного "0" будет - "if (cpu_iorq or cpu_m1) = '0' then"
    Последний раз редактировалось shurik-ua; 17.07.2013 в 14:05.

  10. #229
    ZEK
    Гость

    По умолчанию

    Цитата Сообщение от Mick Посмотреть сообщение
    бмозговал раскладку памяти и как должны работать сумматоры, чтобы прибавлять 50h с каждой строкой (25 текстовых строк )
    50h это 40h + 10h
    ну к примеру VADDR = VA << 6 + VA << 4 + X

    Тобиш умножение VA на 50h
    Последний раз редактировалось ZEK; 17.07.2013 в 15:20.

  11. #230

    Регистрация
    14.06.2005
    Адрес
    г. Калуга
    Сообщений
    10,141
    Спасибо Благодарностей отдано 
    216
    Спасибо Благодарностей получено 
    769
    Поблагодарили
    417 сообщений
    Mentioned
    23 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от ZEK Посмотреть сообщение
    50h это 40h + 10h
    ну к примеру VADDR = VA << 6 + VA << 4 + X

    Тобиш умножение VA на 50h

    Не совсем там получаются чистые VA. Нужно еще и строчные счетчики прибавлять, так как память линейная.
    Сайт поддержки моих изделий - http://micklab.ru/
    Группа ВКонтакте - https://vk.com/micklab

Страница 23 из 33 ПерваяПервая ... 192021222324252627 ... ПоследняяПоследняя

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

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

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

Похожие темы

  1. Прикольная девборда... для спека в самый раз :)
    от ILoveSpeccy в разделе Несортированное железо
    Ответов: 12
    Последнее: 15.08.2008, 07:06

Ваши права

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