User Tag List

Страница 92 из 273 ПерваяПервая ... 888990919293949596 ... ПоследняяПоследняя
Показано с 911 по 920 из 2727

Тема: Цифровая археология: 1801 и все-все-все

  1. #911

    Регистрация
    31.03.2013
    Адрес
    г. Киев
    Сообщений
    2,413
    Спасибо Благодарностей отдано 
    132
    Спасибо Благодарностей получено 
    759
    Поблагодарили
    353 сообщений
    Mentioned
    88 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от hobot Посмотреть сообщение
    Показатель отсутствие "критически важных для эмуляции" предупреждений, наверное?
    На модели Async значительная часть предупреждений звучит так:

    Код:
    Warning (10240): Verilog HDL Always Construct warning at vm1_qbus.v(924): inferring latch(es) for variable "plir", which holds its previous value in one or more paths through the always construct
    Warning (13012): Latch vm1:cpu|vm1_qbus:core|plir has unsafe behavior
    Warning (13013): Ports D and ENA on the latch are fed by the same signal vm1:cpu|vm1_qbus:core|au_alsl
    Такие предупреждения часто приводят к тому что от сборки-к-сборке проект может спорадически не работать. То есть, вдруг повезло и работает, просто перекомпилил - и все, уже не работает Связано это с тем что трассировщик каждый раз может по-разному раскладывать ячейки, он стартует с некоторым начальным псевдослучайным значением. Можно использовать блокировку расположения ячеек LogicLock, но это не везде и не всегда помогает. В-общем, не надо писать кривые дизайны.

  2. #912

    Регистрация
    11.09.2009
    Адрес
    Москва
    Сообщений
    4,806
    Спасибо Благодарностей отдано 
    9
    Спасибо Благодарностей получено 
    147
    Поблагодарили
    78 сообщений
    Mentioned
    16 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    .

    Обнаружилось довольно любопытное поведение CPP-модели в случае, когда задержка установки RPLY равна нулю ( RPLY устанавливается на первом же срезе CLC после установки DIN ), а задержка снятия RPLY равна 3 тактам ( RPLY снимается перед 4 срезом CLC после снятия DIN ).

    В таком случае команды NOP и SWAB Rx ( далее NOP ) не просто увеличивают время выборки кода следующей команды на один такт, а делают это только после двух команд NOP подряд после сброса предвыборки или после первой же команды NOP, если после предыдущего сброса предвыборки уже выполнялись команды NOP.

    На шине это выглядит так ( выделены такты, добавленные командой NOP ) :

    Код:
       000000 [000340]      NOP
    
    -------------------------------------------------
     C        B S D D W R B I I D D S I H E A D I S S
     L   AD   S Y I O T P S R A M M A N A V C C R L L
     C        Y N N U B L 7 Q K R G C I L N L L 3 1 2
    -------------------------------------------------
     1 000000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
     1 000000 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
     1 000240 1 1 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0
     1 000240 1 1 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0
     1 000240 1 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0
     1 000240 1 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0
     1 000240 1 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0
     1 000000 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
    
    
       000002 [000340]      NOP
    
    -------------------------------------------------
     C        B S D D W R B I I D D S I H E A D I S S
     L   AD   S Y I O T P S R A M M A N A V C C R L L
     C        Y N N U B L 7 Q K R G C I L N L L 3 1 2
    -------------------------------------------------
     1 000002 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
     1 000002 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
     1 000240 1 1 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0
     1 000240 1 1 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0
     1 000240 1 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0
     1 000240 1 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0
     1 000240 1 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0
     1 000000 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
    
    
       000004 [000340]      SWAB  R0                      ;   R0  :133000
    
    -------------------------------------------------
     C        B S D D W R B I I D D S I H E A D I S S
     L   AD   S Y I O T P S R A M M A N A V C C R L L
     C        Y N N U B L 7 Q K R G C I L N L L 3 1 2
    -------------------------------------------------
     1 000004 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
     1 000004 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
     1 000300 1 1 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0
     1 000300 1 1 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0
     1 000300 1 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0
     1 000300 1 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0
     1 000300 1 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0
     1 000000 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
     1 000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
    
    
       000006 [000350]      NOP
    
    -------------------------------------------------
     C        B S D D W R B I I D D S I H E A D I S S
     L   AD   S Y I O T P S R A M M A N A V C C R L L
     C        Y N N U B L 7 Q K R G C I L N L L 3 1 2
    -------------------------------------------------
     1 000006 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
     1 000006 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
     1 000240 1 1 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0
     1 000240 1 1 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0
     1 000240 1 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0
     1 000240 1 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0
     1 000240 1 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0
     1 000000 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
     1 000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
    
    
       000014 [000350]      TST   R0                      ;   R0  :000266
    
    -------------------------------------------------
     C        B S D D W R B I I D D S I H E A D I S S
     L   AD   S Y I O T P S R A M M A N A V C C R L L
     C        Y N N U B L 7 Q K R G C I L N L L 3 1 2
    -------------------------------------------------
     1 000014 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
     1 000014 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
     1 005700 1 1 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0
     1 005700 1 1 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0
     1 005700 1 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0
     1 005700 1 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0
     1 005700 1 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0
     1 000000 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
     1 000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
    
    
       000016 [000340]      NOP
    
    -------------------------------------------------
     C        B S D D W R B I I D D S I H E A D I S S
     L   AD   S Y I O T P S R A M M A N A V C C R L L
     C        Y N N U B L 7 Q K R G C I L N L L 3 1 2
    -------------------------------------------------
     1 000016 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
     1 000016 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
     1 000240 1 1 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0
     1 000240 1 1 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0
     1 000240 1 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0
     1 000240 1 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0
     1 000240 1 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0
     1 000000 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
    
    
       000020 [000340]      NOP
    
    -------------------------------------------------
     C        B S D D W R B I I D D S I H E A D I S S
     L   AD   S Y I O T P S R A M M A N A V C C R L L
     C        Y N N U B L 7 Q K R G C I L N L L 3 1 2
    -------------------------------------------------
     1 000020 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
     1 000020 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
     1 000240 1 1 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0
     1 000240 1 1 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0
     1 000240 1 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0
     1 000240 1 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0
     1 000240 1 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0
     1 000000 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
     1 000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
    
    
       000042 [000340]      TST   (R0)                    ; 000266:000000
    
    -------------------------------------------------
     C        B S D D W R B I I D D S I H E A D I S S
     L   AD   S Y I O T P S R A M M A N A V C C R L L
     C        Y N N U B L 7 Q K R G C I L N L L 3 1 2
    -------------------------------------------------
     1 000042 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
     1 000042 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
     1 005710 1 1 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0
     1 005710 1 1 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0
     1 005710 1 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0
     1 005710 1 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0
     1 005710 1 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0
     1 000000 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
     1 000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
     1 000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
     1 000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
    -------------------------------------------------
     C        B S D D W R B I I D D S I H E A D I S S
     L   AD   S Y I O T P S R A M M A N A V C C R L L
     C        Y N N U B L 7 Q K R G C I L N L L 3 1 2
    -------------------------------------------------
     1 000266 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
     1 000266 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
     1 000000 1 1 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0
     1 000000 1 1 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0
     1 000000 1 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0
     1 000000 1 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0
     1 000000 1 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0
     1 000000 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
    
    
       000044 [000344]      NOP
    
    -------------------------------------------------
     C        B S D D W R B I I D D S I H E A D I S S
     L   AD   S Y I O T P S R A M M A N A V C C R L L
     C        Y N N U B L 7 Q K R G C I L N L L 3 1 2
    -------------------------------------------------
     1 000044 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
     1 000044 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
     1 000240 1 1 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0
     1 000240 1 1 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0
     1 000240 1 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0
     1 000240 1 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0
     1 000240 1 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0
     1 000000 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
    
    
       000046 [000344]      NOP
    
    -------------------------------------------------
     C        B S D D W R B I I D D S I H E A D I S S
     L   AD   S Y I O T P S R A M M A N A V C C R L L
     C        Y N N U B L 7 Q K R G C I L N L L 3 1 2
    -------------------------------------------------
     1 000046 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
     1 000046 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
     1 000240 1 1 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0
     1 000240 1 1 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0
     1 000240 1 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0
     1 000240 1 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0
     1 000240 1 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0
     1 000000 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
    
    
       000050 [000344]      NOP
    
    -------------------------------------------------
     C        B S D D W R B I I D D S I H E A D I S S
     L   AD   S Y I O T P S R A M M A N A V C C R L L
     C        Y N N U B L 7 Q K R G C I L N L L 3 1 2
    -------------------------------------------------
     1 000050 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
     1 000050 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
     1 000240 1 1 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0
     1 000240 1 1 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0
     1 000240 1 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0
     1 000240 1 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0
     1 000240 1 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0
     1 000000 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
     1 000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

    У реального процессора тоже так или это глюк модели ?

  3. #913

    Регистрация
    27.11.2015
    Адрес
    г. Самара
    Сообщений
    341
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    4
    Поблагодарили
    3 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    пока еще изучаю и пытаюсь решить какую модель удобнее использовать.
    Поэтому хочу уточнить по поводу Wsync:

    vm1_wb (
    .vm_clk_p(clock),
    .vm_clk_n(~clock),
    .vm_clk_ena(clock4Mhz), // период 4мгц и длительностью импульса равным периоду clock.
    .vm_clk_tve(1),
    .vm_clk_sp(1),
    .vm_clk_slow(1),
    ...

    Так? Какую оптимальную частоту clock посоветуете? Количество тактов и прочие времена будут считаться как у реального процессора относительно клока 4мгц?

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

    Вопрос, который давно пытаюсь выяснить: За год существования вашей модели, так и не было создано эмулятора БК или другого компьютера на базе вашей модели? Просто система сигналов ВМ1 достаточно сложная чтобы вот так с нуля начать делать эмулятор. Хочется иметь какую-то начальную "рыбу".

  4. #914

    Регистрация
    31.03.2013
    Адрес
    г. Киев
    Сообщений
    2,413
    Спасибо Благодарностей отдано 
    132
    Спасибо Благодарностей получено 
    759
    Поблагодарили
    353 сообщений
    Mentioned
    88 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Patron Посмотреть сообщение
    .
    Обнаружилось довольно любопытное поведение CPP-модели в случае, когда задержка установки RPLY равна нулю ( RPLY устанавливается на первом же срезе CLC после установки DIN ), а задержка снятия RPLY равна 3 тактам ( RPLY снимается перед 4 срезом CLC после снятия DIN ).
    ...
    У реального процессора тоже так или это глюк модели ?
    Быстро это проверить не получится, надо менять схему снятия RPLY, вводить туда счетчик и тестировать изменения.

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

    Цитата Сообщение от Saar Посмотреть сообщение
    .vm_clk_ena(clock4Mhz), // период 4мгц и длительностью импульса равным периоду clock.
    Надо только учесть что это короткие импульсы, а не меандр.

    Цитата Сообщение от Saar Посмотреть сообщение
    Так? Какую оптимальную частоту clock посоветуете?
    Максимальную, которую тянет примененная микросхема, я использую 100МГц.

    Цитата Сообщение от Saar Посмотреть сообщение
    Количество тактов и прочие времена будут считаться как у реального процессора относительно клока 4мгц?
    Да.

    Цитата Сообщение от Saar Посмотреть сообщение
    Вопрос, который давно пытаюсь выяснить: За год существования вашей модели, так и не было создано эмулятора БК или другого компьютера на базе вашей модели? Просто система сигналов ВМ1 достаточно сложная чтобы вот так с нуля начать делать эмулятор. Хочется иметь какую-то начальную "рыбу".
    Рабочая модель существует с конца августа. Я как раз сейчас занимаюсь разработкой БК на базе Wsync. Начальная "рыба" - проект для платы DE0 в каталоге модели Wsync. Собственно работоспособность этой модели проверена на реальной плате DE0.

  5. #915

    Регистрация
    11.09.2009
    Адрес
    Москва
    Сообщений
    4,806
    Спасибо Благодарностей отдано 
    9
    Спасибо Благодарностей получено 
    147
    Поблагодарили
    78 сообщений
    Mentioned
    16 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Vslav Посмотреть сообщение
    Быстро это проверить не получится, надо менять схему снятия RPLY, вводить туда счетчик и тестировать изменения.
    В общем виде ситуация с NOP выглядит так:

    Код:
      if( nWord <= 0257 )
      { // NOP .. CCC
    	word nMask = nWord & 017;
    	PSW &= ~nMask;
    
    	Make_ALU_Delay();
    	
    	if( !nRPLY_ON_Latency )
    	{
    		if( nRPLY_OFF_Latency <  3 ) { nOverrun = 1; }
    		else
    		if( nRPLY_OFF_Latency == 3 ) { nNOP_Delay++; }
    
    		if( nNOP_Delay > 1 )
    		{
    			nNOP_Delay = 1;
    			nOverrun = 1;
    		}
    	}
    	return; /* continue */
      }

    Поэтому даже при нулевой задержке установки и снятия RPLY - можно проверить, увеличивают ли команды NOP и SWAB Rx продолжительность выборки кода следующей команды на один такт.

  6. #916

    Регистрация
    27.11.2015
    Адрес
    г. Самара
    Сообщений
    341
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    4
    Поблагодарили
    3 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    В Qsync модели меня смущают сигналы DIN, DOUT, RPLY, SYNC - они же должны быть однонаправленными, а в моделе они inout.
    Вот, например тут описаны как однонаправленные:
    http://www.emuverse.ru/wiki/%D0%9E%D...0%B8_1801-1806

    Вообще, есть ли где на просторах интернета полное описание ВМ1 с графиками обмена в разных режимах?


    Цитата Сообщение от Vslav Посмотреть сообщение
    Надо только учесть что это короткие импульсы, а не меандр.
    именно это я и имел ввиду.

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

  8. #917

    Регистрация
    31.03.2013
    Адрес
    г. Киев
    Сообщений
    2,413
    Спасибо Благодарностей отдано 
    132
    Спасибо Благодарностей получено 
    759
    Поблагодарили
    353 сообщений
    Mentioned
    88 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Saar Посмотреть сообщение
    В Qsync модели меня смущают сигналы DIN, DOUT, RPLY, SYNC - они же должны быть однонаправленными, а в моделе они inout.
    Вот, например тут описаны как однонаправленные:
    http://www.emuverse.ru/wiki/%D0%9E%D...0%B8_1801-1806
    Ну что я могу сказать... В сети достаточно много не совсем достоверной информации по 1801ВМ1. Заводской документации на микросхему в открытом доступе нет, есть более-менее приличная информация в статье в МПСС и в некоторых справочниках типа Шахнова. Процессор ВМ1 имеет внутри недокументированный периферийный блок - таймер и три управляющих регистра. Поэтому внешняя шина является разделяемой - может работать как ведущее так и ведомое устройство МПИ. Некоторый внешний агент (например другой процессор), может выставить DMR, получить шину и читать-писать периферийные регистры процессора. При этом ножки DIN, DOUT и SYNC будут являться входами, а RPLY - выходом. То есть - эти выводы именно inout.

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

    Цитата Сообщение от Patron Посмотреть сообщение
    В общем виде ситуация с NOP выглядит так:
    Поэтому даже при нулевой задержке установки и снятия RPLY - можно проверить, увеличивают ли команды NOP и SWAB Rx продолжительность выборки кода следующей команды на один такт.
    Тестовая последовательность на ВМ1А работает в цикле с адреса 001612: []
    Задержки связаны с тем как процессор запускает выборку следующей команды, иногда это происходит в середине исполнения текущей команды, иногда только после опроса прерываний, надо анализировать микрокод, пока ясная закономерность не выявлена.

  9. #918

    Регистрация
    11.09.2009
    Адрес
    Москва
    Сообщений
    4,806
    Спасибо Благодарностей отдано 
    9
    Спасибо Благодарностей получено 
    147
    Поблагодарили
    78 сообщений
    Mentioned
    16 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Vslav Посмотреть сообщение
    пока ясная закономерность не выявлена
    Закономерность приведённых на картинке таймингов станет вполне понятной, если учесть запрет предвыборки.

    Запрет предвыборки происходит при любом переходе, при любом обращении к памяти в последнем операнде и в некоторых других случаях ( в исходнике A-модели MPI_1801VM1.cpp запрет предвыборки кодируется так: bPreFetchEnabled = false ).

    Общий алгоритм вычисления добавочных тактов nALU_Delay после чтения кода команды ( в обсуждаемой ситуации нулевых задержек RPLY ) следующий:

    1. Если предыдущая команда запретила предвыборку: nALU_Delay = 2
    2. Если предыдущая команда не запретила предвыборку: nALU_Delay = 3 + nOverrun
    3. Если предыдущая команда NOP или SWAB Rx - nOverrun = 1

    Для интереса - если предыдущая команда MovB x, Rx - то nOverrun = 3, а для команды MovB Rx, Rx на ВМ1г: nOverrun = 5.

    Поэтому, если на ВМ1г выполнить последовательность:

    Код:
    	MOVB	R0, R1
    	TST	R0
    	TST	R0
    	TST	R0
    То между первым циклом чтения и вторым пройдёт 2 такта, между вторым и третьим - 8 тактов, а между третьим и четвёртым - 3 такта.

    На шине это будет выглядеть так:

    Код:
                                                          ;
       000000 [000340]      MOVB  R0, R1                  ;   R0  :   177 ->   R1
    
    -------------------------------------------------
     C        B S D D W R B I I D D S I H E A D I S S
     L   AD   S Y I O T P S R A M M A N A V C C R L L
     C        Y N N U B L 7 Q K R G C I L N L L 3 1 2
    -------------------------------------------------
     1 000000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
     1 000000 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
     1 110001 1 1 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0
     1 110001 1 1 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0
     1 000000 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
     1 000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
     1 000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
    
    
       000002 [000340]      TST   R0                      ;   R0  :077577
    
    -------------------------------------------------
     C        B S D D W R B I I D D S I H E A D I S S
     L   AD   S Y I O T P S R A M M A N A V C C R L L
     C        Y N N U B L 7 Q K R G C I L N L L 3 1 2
    -------------------------------------------------
     1 000002 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
     1 000002 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
     1 005700 1 1 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0
     1 005700 1 1 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0
     1 000000 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
     1 000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
     1 000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
     1 000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
     1 000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
     1 000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
     1 000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
     1 000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
     1 000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
    
    
       000004 [000340]      TST   R0                      ;   R0  :077577
    
    -------------------------------------------------
     C        B S D D W R B I I D D S I H E A D I S S
     L   AD   S Y I O T P S R A M M A N A V C C R L L
     C        Y N N U B L 7 Q K R G C I L N L L 3 1 2
    -------------------------------------------------
     1 000004 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
     1 000004 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
     1 005700 1 1 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0
     1 005700 1 1 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0
     1 000000 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
     1 000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
     1 000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
     1 000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
    
    
       000006 [000340]      TST   R0                      ;   R0  :077577
    
    -------------------------------------------------
     C        B S D D W R B I I D D S I H E A D I S S
     L   AD   S Y I O T P S R A M M A N A V C C R L L
     C        Y N N U B L 7 Q K R G C I L N L L 3 1 2
    -------------------------------------------------
     1 000006 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
     1 000006 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
     1 005700 1 1 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0
     1 005700 1 1 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0
     1 000000 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
     1 000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
     1 000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
     1 000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
    Последний раз редактировалось Patron; 20.12.2015 в 22:18.

  10. #919

    Регистрация
    27.11.2015
    Адрес
    г. Самара
    Сообщений
    341
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    4
    Поблагодарили
    3 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Vslav Посмотреть сообщение
    Надо только учесть что это короткие импульсы, а не меандр.
    Хочу уточнить: длительность импульса должна быть равна полу-периоду системного клока?

    так?

    reg vm_clk_ena = 1'b0;
    reg old_clk = 1'b0;
    always @(posedge sys_clk_p) begin
    vm_clk_ena <= 1'b0;
    old_clk <= clk_cpu;
    if(!old_clk && clk_cpu) vm_clk_ena <=1'b1;
    end

  11. #920

    Регистрация
    31.03.2013
    Адрес
    г. Киев
    Сообщений
    2,413
    Спасибо Благодарностей отдано 
    132
    Спасибо Благодарностей получено 
    759
    Поблагодарили
    353 сообщений
    Mentioned
    88 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Saar Посмотреть сообщение
    Хочу уточнить: длительность импульса должна быть равна полу-периоду системного клока?
    Почему полупериоду? Периоду. Впрочем, код правильный. Можно чуть компактней записать:

    Код:
    reg vm_clk_ena;
    reg old_clk;
    
    always @(posedge sys_clk_p) begin
    	old_clk  <= clk_cpu;
    	vm_clk_ena <= !old_clk & clk_cpu;
    end
    Избегать инициализаций в Верилоге - хорошая практика (одобренная ведущими собаководами в том числе OpenCores), не всегда синтезируется, а если и да, то отсутствие инициализации предоставляет синтезатору дополнительную степень свободы. Также блоки initial следует применять только в коде для симуляции.

Страница 92 из 273 ПерваяПервая ... 888990919293949596 ... ПоследняяПоследняя

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

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

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

Похожие темы

  1. Ответов: 7
    Последнее: 28.06.2014, 17:50
  2. Микросхемы МПК 580,1801,1810 и другие...
    от Alex_Vac в разделе Барахолка (архив)
    Ответов: 44
    Последнее: 07.04.2012, 08:03
  3. ЦИФРОВАЯ МУЗЫКА НА ZX
    от AAA в разделе Музыка
    Ответов: 98
    Последнее: 18.09.2011, 22:33
  4. Учебный стенд УМПК-1801
    от dk_spb в разделе ДВК, УКНЦ
    Ответов: 2
    Последнее: 12.05.2010, 16:52
  5. Цифровая музыка от Вадима Ермеева
    от zxmike в разделе Музыка
    Ответов: 2
    Последнее: 06.08.2007, 23:13

Метки этой темы

Ваши права

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