дык, Господа....
я на своей картинке указал конкретное место на котором спотыкается, до него молотит без вопросов.
первые две мкросекунды я видел много много раз...
дык, Господа....
я на своей картинке указал конкретное место на котором спотыкается, до него молотит без вопросов.
первые две мкросекунды я видел много много раз...
.
С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
И я на своей картинке указал конкретное место. Если поправить мое "конкретное место", то в твоем "конкретном месте" спотыкаться перестанет. Я глубоко в программу не вникал, но после коррекции она успешно поехала дальше. Там имеет место распространяющаяся неопределенность моделирования, в конце-концов она зажирает весь процесс. Точку ее зарождения я указал.
- - - Добавлено - - -
Строчку:
if (~f2 & (reset | (m1 & t3))) i <= pin_din;
Заменить на:
if (~f2 & (reset | (m1 & t3))) i <= reset ? 8'b00000000 : pin_din;
Это обнуление регистра инструкции при сбросе. Будет отличаться от оригинала. Позволит моделироваться, ухудшит синтезабельность, на поведение в реальной FPGA влияния не окажет.
а теперь, извиняюсь....
это заменить где? все мои сырцы а Вас есть, дайте пожалуста хоть +- 5 строк.
.
если с разверткой разберусь то попробую (в ФПГА)
.
Угу, получается у оригинала в регистр пишется мусор. Я что-то такое про эти грабли помню, у меня тоже не моделировалось из-за этого, пришлось прицепить вход i на входные пины непосредственно, там еще из-за этого мультиплексор шины данных хорошо разгрузился, ЕМНИП и максимальная частота выросла.
Update:
Посмотрел код "отдохнувшим" взглядом и после опыта с ВМ1, упростить можно модельку ВМ80 очень серьезно. Я же старался сохранить максимальную совместимость с оригиналом для моделирования и синтезируемое ядро в одном проекте. А надо разделить на два, как с ВМ1 сделано. Тогда чисто синтезируемая ветка на wishbone с одним тактовым сигналом просто катастрофически упрощается, регистры элементарно в блок памяти засовываются, частота растет. А то 670LE и 240FF как-то толсто для 8-битника.
Последний раз редактировалось Vslav; 29.11.2016 в 13:02.
да, Господа, еще раз снимаю щляпу.
в железе молотит нормально. и разумеется в отличии от "аналогов" все осцилограммы действительно как в учебнике.
фотку не привожу т.к. ПЗУ не залил, т.е. процик вертит мусором по экрану.
упростить синтезируемую модель - это очень хорошо, щас всяких FPGA как грязи, может народ подтянется.
- - - Добавлено - - -
ладно, покажу "как есть", чтоб меня свитсуном не считали...
Скрытый текст
[свернуть]
.
надо разобраться как бинарники подгружать, покаместь единственный выход только как в знакогенераторе, но это такой гемор....
- - - Добавлено - - -
а еслиб вы знали сколько ISE ворнингов насыпает
тут "и мои и ваши", все сырцы у вас есть, так что разберетесь где чьи:
Скрытый текст
WARNING:Xst:1710 - FF/Latch <t382> (without init value) has a constant value of 0 in block <cpu>. This FF/Latch will be trimmed during the optimization process.
WARNING:Xst:1710 - FF/Latch <intr> (without init value) has a constant value of 0 in block <cpu>. This FF/Latch will be trimmed during the optimization process.
WARNING:Xst:1710 - FF/Latch <t976> (without init value) has a constant value of 0 in block <cpu>. This FF/Latch will be trimmed during the optimization process.
WARNING:Xst:1710 - FF/Latch <inta> (without init value) has a constant value of 0 in block <cpu>. This FF/Latch will be trimmed during the optimization process.
WARNING:Xst:1710 - FF/Latch <hold> (without init value) has a constant value of 0 in block <cpu>. This FF/Latch will be trimmed during the optimization process.
WARNING:Xst:1895 - Due to other FF/Latch trimming, FF/Latch <t887> (without init value) has a constant value of 0 in block <cpu>. This FF/Latch will be trimmed during the optimization process.
WARNING:Xst:1895 - Due to other FF/Latch trimming, FF/Latch <t980> (without init value) has a constant value of 0 in block <cpu>. This FF/Latch will be trimmed during the optimization process.
WARNING:Xst:2677 - Node <control_word_0> of sequential type is unconnected in block <control_word>.
WARNING:Xst:2677 - Node <control_word_1> of sequential type is unconnected in block <control_word>.
WARNING:Xst:2677 - Node <control_word_2> of sequential type is unconnected in block <control_word>.
WARNING:Xst:2677 - Node <control_word_3> of sequential type is unconnected in block <control_word>.
WARNING:Xst:2677 - Node <control_word_5> of sequential type is unconnected in block <control_word>.
WARNING:Xst:2677 - Node <control_word_6> of sequential type is unconnected in block <control_word>.
WARNING:Xst:1898 - Due to constant pushing, FF/Latch <mstart> is unconnected in block <cpu>.
WARNING:Xst:1710 - FF/Latch <t383> (without init value) has a constant value of 0 in block <cpu>. This FF/Latch will be trimmed during the optimization process.
WARNING:Xst:1710 - FF/Latch <minta> (without init value) has a constant value of 0 in block <cpu>. This FF/Latch will be trimmed during the optimization process.
WARNING:Xst:2677 - Node <inte> of sequential type is unconnected in block <cpu>.
WARNING:Xst:1898 - Due to constant pushing, FF/Latch <t3144> is unconnected in block <cpu>.
WARNING:Xst:2677 - Node <control_word_0> of sequential type is unconnected in block <vk28>.
WARNING:Xst:2677 - Node <control_word_1> of sequential type is unconnected in block <vk28>.
INFO:Xst:3226 - The RAM <ram/Mram_ram> will be implemented as a BLOCK RAM, absorbing the following register(s):WARNING:Xst:2677 - Node <control_word_2> of sequential type is unconnected in block <vk28>.
WARNING:Xst:2677 - Node <control_word_3> of sequential type is unconnected in block <vk28>.
WARNING:Xst:2677 - Node <control_word_5> of sequential type is unconnected in block <vk28>.
WARNING:Xst:1710 - FF/Latch <cpu/t976> (without init value) has a constant value of 0 in block <kefircheg>. This FF/Latch will be trimmed during the optimization process.
WARNING:Xst:1895 - Due to other FF/Latch trimming, FF/Latch <cpu/intr> (without init value) has a constant value of 0 in block <kefircheg>. This FF/Latch will be trimmed during the optimization process.
WARNING:Xst:1895 - Due to other FF/Latch trimming, FF/Latch <cpu/t382> (without init value) has a constant value of 0 in block <kefircheg>. This FF/Latch will be trimmed during the optimization process.
WARNING:Xst:1895 - Due to other FF/Latch trimming, FF/Latch <cpu/hold> (without init value) has a constant value of 0 in block <kefircheg>. This FF/Latch will be trimmed during the optimization process.
WARNING:Xst:1895 - Due to other FF/Latch trimming, FF/Latch <cpu/inta> (without init value) has a constant value of 0 in block <kefircheg>. This FF/Latch will be trimmed during the optimization process.
WARNING:Xst:1895 - Due to other FF/Latch trimming, FF/Latch <cpu/t980> (without init value) has a constant value of 0 in block <kefircheg>. This FF/Latch will be trimmed during the optimization process.
WARNING:Xst:1895 - Due to other FF/Latch trimming, FF/Latch <cpu/t887> (without init value) has a constant value of 0 in block <kefircheg>. This FF/Latch will be trimmed during the optimization process.
WARNING:Xst:1898 - Due to constant pushing, FF/Latch <cpu/inte> is unconnected in block <kefircheg>.
WARNING:Xst:1898 - Due to constant pushing, FF/Latch <cpu/mstart> is unconnected in block <kefircheg>.
WARNING:Xst:1710 - FF/Latch <cpu/t383> (without init value) has a constant value of 0 in block <kefircheg>. This FF/Latch will be trimmed during the optimization process.
WARNING:Xst:1895 - Due to other FF/Latch trimming, FF/Latch <cpu/minta> (without init value) has a constant value of 0 in block <kefircheg>. This FF/Latch will be trimmed during the optimization process.
WARNING:Xst:1898 - Due to constant pushing, FF/Latch <cpu/t3144> is unconnected in block <kefircheg>.
WARNING:Xst:2677 - Node <control_word/control_word_6> of sequential type is unconnected in block <kefircheg>.
WARNING:Xst:2040 - Unit kefircheg: 8 multi-source signals are replaced by logic (pull-up yes): data_bus<0>, data_bus<1>, data_bus<2>, data_bus<3>, data_bus<4>, data_bus<5>, data_bus<6>, data_bus<7>.
WARNING:Xst:1710 - FF/Latch <counter_3> (without init value) has a constant value of 0 in block <board>. This FF/Latch will be trimmed during the optimization process.
[свернуть]
Последний раз редактировалось Atari; 29.11.2016 в 13:59.
.
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)