|
I8x86 ip core(+), Разыскивается |
|
|
3 страниц
1 2 3 >
|
 |
Ответов
(1 - 32)
|
Sep 19 2006, 06:07
|
Местный
  
Группа: Свой
Сообщений: 313
Регистрация: 8-09-04
Из: Таганрог
Пользователь №: 617

|
Цитата(psL @ Sep 19 2006, 09:34)  Цитата(cdg @ Sep 19 2006, 09:28)  Цитата(psL @ Sep 14 2006, 10:24)  Это есть, вопрос как раз в инвенторовской корке она у них с сайта пропала  , да и к томуже в режиме 8086 глючит  , freecores пока не занимался А в чем глюк? Фактически как я понял у них какие то проблемы с очередью команд, простейшая программа, укладывающаяся в первые 16 байт, и, осуществляющая чтение ячейкм памяти, инкремент и запись в нее же, работает, но появляются какие то странные дополнительные чтения/записи из памяти и в память по неиспользуемым адресам, после этих "чудесных" записей, программа начинает работат заново и больше не сбивается  .
|
|
|
|
|
Sep 22 2006, 12:56
|
Местный
  
Группа: Свой
Сообщений: 313
Регистрация: 8-09-04
Из: Таганрог
Пользователь №: 617

|
По результатам несколько-дневных долбаний: инвентровское ядро так и не заработало (ни Verilog ни VHDL) ядро HTlabcom по первым впечатлениям работает (первый простейший код), но надо еще многое проверять.
|
|
|
|
|
Sep 29 2006, 05:39
|
Местный
  
Группа: Свой
Сообщений: 313
Регистрация: 8-09-04
Из: Таганрог
Пользователь №: 617

|
Цитата(Gate @ Sep 28 2006, 14:34)  cdg, а Вам не кажется, что проблема где-то у Вас? Менторовская корка у Вас не работает, выложеная Vetal'ом не работает тоже. Я сомневаюсь, что 2 фирмы продают фактически нерабочие ядра. Мне не кажется и на то есть следующие причины: 1) Менторовская корка была продана АРС и развивалась им далее (не нужно быть супер умным, чтобы это увидить даже не сравнивая исходные тексты корки, достаточно посмотреть на даташиты). 2) Первоначальный глюк связанный с работой в стартапной области небыл исправлен. 3) Существует ряд моментов, на которые у меня не хватает фантазии получить ответы. 4) По фактам: а) В комплекте с ядром идет testbench, который "?работает?" (их код). Если взять простую програмку: Код @FFF8 F0BB 8E15 33DB 8BDB 40C3 0789 9090 F9EB Код .186 TITLE (8086-IP Programm) LOCALS code_seg segment assume cs:code_seg org 100h begin: mov bx, 015F0h mov ds, bx xor bx, bx mov ax, bx l1: inc ax mov word ptr [bx], ax mov ax, word ptr [bx] jmp l1 code_seg ends END begin она как раз помещается в bootcode.mem, то она работает на этом ядре несколько странно (в отличие от фриварного ядра и собственно от обычного процессора I8х86). В первый проход AX и ячейка @15F0h наращивается на 1, второй проход опять в AX и ячейку @15F0h попадает 1, потом АХ обнуляется, на третий проход пишется 1-ца, 4-ый 2-ка и т.д., т.е. начинает работать нормально. Если код переместить в памяти, а в bootcode.mem оставить только переход то все работает нормально. Так точно у меня работало и инвентровское ядро (отсуда и мысли что глюк не был выправлен). б) Не могу найти объяснения исходному содержимому файла bootcode.mem: Код @fff8 00EA 5000 FF11 FFFF EFEA BFEF FFBF FFFF если это дизасемблировать то получается нечто: Код 00000000: EA00005011 jmp 1150:0000 00000005: FF db FF; " " 00000006: FF db FF; " " 00000007: FFEA jmp edx 00000009: EF out ax,dx 0000000A: EF out ax,dx 0000000B: BABFFF mov dx,FFBF 0000000E: FF db FF; " " 0000000F: FF db FF; " " Код после JMP смысла не имеет (собственно и не выполняется). К стати буткод от инвентровског не отличается. в) По поводу подключения тоже множество непонятных моментов, разное поведение процессора в зависимости от того в каком состоянии входная шина данных при обращении к "закрытым(несуществующим) областям памяти", 16'h0000- одно, 16'hFFFF - другое, 16'hz - вобще виснет. г) сохранился с менторовских времен и небольшой баг в тесбенче: Код есть: // Build status for display wire s = {mio, dtr_n, den_n}; надо: // Build status for display wire [2:0] s = {mio, dtr_n, den_n}; Исходя из изложенного и возникает сомнение в работоспособности ядра выкидыващего такие фортели на самых простых вещах. 5) Вопрос о полнофункциональной программе тестировании ядра остается пока для меня открытым. 6) Если у Вас есть ответы на сформулированные вопросы или Вы можете подсказать в чем корень моих бед - милости прошу  . З.Ы. Пока только в Active HDL пытаюсь запустить, но макет на столе уже есть.
|
|
|
|
|
Sep 30 2006, 17:55
|
Знающий
   
Группа: Свой
Сообщений: 859
Регистрация: 7-04-05
Из: Санкт-Петербург
Пользователь №: 3 943

|
Цитата(cdg @ Sep 29 2006, 09:39)  она как раз помещается в bootcode.mem, то она работает на этом ядре несколько странно (в отличие от фриварного ядра и собственно от обычного процессора I8х86). В первый проход AX и ячейка @15F0h наращивается на 1, второй проход опять в AX и ячейку @15F0h попадает 1, потом АХ обнуляется, на третий проход пишется 1-ца, 4-ый 2-ка и т.д., т.е. начинает работать нормально. cdg, Вы совершенно правы, я запустил Ваш код на квесте - те же грабли. Там еще в SP пишется 2, похоже, что вместо AX. Вопрос - этот глюк критичный, или он возникает только после сброса? Как я понял, он исчезает, если первой командой стоит long jmp. Вопрос с полной верификацией этого IP, думаю, останется открытым - пока Вы его не купили, тогда можно обратится к разработчикам и получить сатисфакцию. Единственный путь, который я вижу - имплементировать ядро и писать под него firmware, нужное для данной конкретной задачи - в процессе отладки станет ясно глюкавость. Тестов не верификацию интеловских процов я никогда не видел, тесты в биосах, под дос типа манифеста - это все не то. ЗЫ Хекс, который Вы привели, не совпадает с листингом: в хексе два нопа, а в листинге mov ax,[bx]
--------------------
"Человек - это существо, которое охотнее всего рассуждает о том, в чем меньше всего разбирается." (с) С.Лем
|
|
|
|
|
Oct 2 2006, 06:02
|
Местный
  
Группа: Свой
Сообщений: 313
Регистрация: 8-09-04
Из: Таганрог
Пользователь №: 617

|
Цитата ЗЫ Хекс, который Вы привели, не совпадает с листингом: в хексе два нопа, а в листинге mov ax,[bx] Тут я действительно промазал, просто скопировал одну из многочисленных вариаций программки, но суть от этого не меняется. Верификацию переложу на программистов, пусть они теперь голову поломают  . Спасибо за участие.
|
|
|
|
|
Oct 2 2006, 06:16
|
Местный
  
Группа: Свой
Сообщений: 313
Регистрация: 8-09-04
Из: Таганрог
Пользователь №: 617

|
Цитата Боюсь что написание тестов комманд для x86 процов задача молореализуемая. CISC однако. Проще собрать систему с таймером и UART и попробовать запустить на ней простенькую операционку. А вообще отладка чужого CISC(сырого) дело тухлое. Ведь каждая найденная ошибка будет предпоследней. Очень жаль, но Вы обсолютно правы  .
|
|
|
|
|
Oct 2 2006, 12:20
|
Местный
  
Группа: Свой
Сообщений: 313
Регистрация: 8-09-04
Из: Таганрог
Пользователь №: 617

|
В общем по результатам исследований ARC ядро (как и инвентровское) считаю нерабочим. Пормимо указанного ранее глюка со стартапом глючит обработка прерываний, т.е. от момента выставления прерывания до получения вектора прерывания все ок, от момента получения вектора прерывания до получения значений смещения и сегмента происходят 3 "левых" записи в память по "левым" адресам, после возвращения из процедуры прерываний, состоящей из одной команды iret (0xCF), портятся значения регистров АХ, SI и т.п. Сложилось впечатление что оное ядро специально "подпорчено", но годится в демо целях  . Жаль потраченного времени, но отрицательный результат тоже результат  .
|
|
|
|
|
Oct 2 2006, 15:51
|
Частый гость
 
Группа: Свой
Сообщений: 177
Регистрация: 21-10-04
Пользователь №: 948

|
Цитата(cdg @ Oct 2 2006, 16:20)  В общем по результатам исследований ARC ядро (как и инвентровское) считаю нерабочим. А ht-лабовскую будете пробовать? Может где-нибудь в инете есть отчеты или форумы по x86 коркам?
|
|
|
|
|
Oct 3 2006, 05:12
|
Местный
  
Группа: Свой
Сообщений: 313
Регистрация: 8-09-04
Из: Таганрог
Пользователь №: 617

|
Цитата А ht-лабовскую будете пробовать? Я ее уже смотрел (см. выше), предварительно работает на том, где спотыкается Inventra(Mentor) и ARC. Сегодня займусь дальнейшими изысканиями, о результатах сообщу(коли есть интерес, а то пока я один здесь такой заинтресованный)  . Предварительно могу сказать, что эта корка работает медленнее(но работает  ), чем Inventra(Mentor) и ARC - 33МГц против 47МГц. Напрягает отсутствие входа готовности SRDY и невозможность выставить вайтстэйты отдельно на область IO и MEM, однако может можно доработать. Цитата Может где-нибудь в инете есть отчеты или форумы по x86 коркам? Я на такие пока не нарвался.
|
|
|
|
|
Oct 3 2006, 14:43
|
Частый гость
 
Группа: Свой
Сообщений: 177
Регистрация: 21-10-04
Пользователь №: 948

|
Цитата(cdg @ Oct 3 2006, 09:12)  ...о результатах сообщу(коли есть интерес, а то пока я один здесь такой заинтресованный) ... Интерес есть и у меня: количество наработанного программного обеспечения (на оригинальном i80C188/186EB) - огромно! Интересно просто все это использовать для SOC систем. Все минусы x86 внутри FPGA могут быть скомпенсированы наличием готового софта, легкости написaния и отладки нового. Но нужна достаточно надежная и совместимая корка.
|
|
|
|
|
Oct 4 2006, 12:40
|
Местный
  
Группа: Свой
Сообщений: 313
Регистрация: 8-09-04
Из: Таганрог
Пользователь №: 617

|
Цитата Интерес есть и у меня И это радует!!!  Цитата количество наработанного программного обеспечения (на оригинальном i80C188/186EB) - огромно! Аналогично... Цитата Все минусы x86 внутри FPGA могут быть скомпенсированы наличием готового софта, легкости написaния и отладки нового. Это спорное утверждение... Цитата Но нужна достаточно надежная и совместимая корка. Я вот и пытаюсь найти. Пока в корке HTlabcom нашел глюк с прерываниями, залез к ним на страничку увидел новый релиз в котором обещали исправить. Вот как бы их еще уговорить сделать входной SRDY сигнал???
|
|
|
|
|
Oct 4 2006, 14:21
|
Частый гость
 
Группа: Свой
Сообщений: 177
Регистрация: 21-10-04
Пользователь №: 948

|
Цитата(cdg @ Oct 4 2006, 16:40)  Цитата Все минусы x86 внутри FPGA могут быть скомпенсированы наличием готового софта, легкости написaния и отладки нового.
Это спорное утверждение... Может иногда и спорное, но часто очень даже и не спорное. Часто нужно сделать красивое для юзера и гибкое для девелопера, пусть даже и не самое производительное, решение задачи - в срок, чем идеальное и суперсовременное - тогда, когда оно уже не нужно.
|
|
|
|
|
Oct 4 2006, 16:10
|
Знающий
   
Группа: Свой
Сообщений: 859
Регистрация: 7-04-05
Из: Санкт-Петербург
Пользователь №: 3 943

|
Цитата(klop @ Oct 4 2006, 16:58)  Ради прикола. А кто нибудь видел чипы в которых бы были синтезируемые x86 ядра? Я что то таких не встречал. Впрочем это не значит что их нет. Кто-то на форуме ixbt по фотоаппаратам говорил, что в процессоре digic II, который обрабатывает снимки в каноновской серии ixus, есть dsp + ядро 86.
--------------------
"Человек - это существо, которое охотнее всего рассуждает о том, в чем меньше всего разбирается." (с) С.Лем
|
|
|
|
|
Oct 4 2006, 17:15
|
Частый гость
 
Группа: Свой
Сообщений: 177
Регистрация: 21-10-04
Пользователь №: 948

|
Цитата(Gate @ Oct 4 2006, 20:10)  Цитата(klop @ Oct 4 2006, 16:58)  Ради прикола. А кто нибудь видел чипы в которых бы были синтезируемые x86 ядра? Я что то таких не встречал. Впрочем это не значит что их нет.
Кто-то на форуме ixbt по фотоаппаратам говорил, что в процессоре digic II, который обрабатывает снимки в каноновской серии ixus, есть dsp + ядро 86. Да, там хакеры раскопали код firmware - оказался от i186. Забавно. Жив курилка! http://forum.ixbt.com/topic.cgi?id=20:11661http://forum.ixbt.com/topic.cgi?id=8:18741-115Кому интересно.
|
|
|
|
|
Oct 15 2006, 19:53
|
Знающий
   
Группа: Свой
Сообщений: 859
Регистрация: 7-04-05
Из: Санкт-Петербург
Пользователь №: 3 943

|
cdg, я исправил(?) ошибку в менторовской корке, теперь маленькая программа на 16 байт работает правильно, регистры не портятся. Работает также и огромный тестбенч, который там приложен. Цитата(cdg @ Oct 2 2006, 16:20)  В общем по результатам исследований ARC ядро (как и инвентровское) считаю нерабочим. Пормимо указанного ранее глюка со стартапом глючит обработка прерываний, т.е. от момента выставления прерывания до получения вектора прерывания все ок, от момента получения вектора прерывания до получения значений смещения и сегмента происходят 3 "левых" записи в память по "левым" адресам, после возвращения из процедуры прерываний, состоящей из одной команды iret (0xCF), портятся значения регистров АХ, SI и т.п. Проверьте, пожалуйста, обработку прерываний, и если они будут глючить, пришлите мне исходники Вашего теста, я поисправляю дальше...
--------------------
"Человек - это существо, которое охотнее всего рассуждает о том, в чем меньше всего разбирается." (с) С.Лем
|
|
|
|
|
Oct 15 2006, 20:44
|
Знающий
   
Группа: Свой
Сообщений: 859
Регистрация: 7-04-05
Из: Санкт-Петербург
Пользователь №: 3 943

|
Нашел в менторовском тестбенче кусочек, где обрабатывается прерывание и посмотрел. Цитата(cdg @ Oct 2 2006, 16:20)  глючит обработка прерываний, т.е. от момента выставления прерывания до получения вектора прерывания все ок, от момента получения вектора прерывания до получения значений смещения и сегмента происходят 3 "левых" записи в память по "левым" адресам, У меня не так - после получения вектора идет 3 раза запись в стек (CS, IP и флагов), потом 2 чтения сегмента и смещ. процедуры обработки прерыв. Потом 3 чтения - загрузка очереди инструкций с нового адреса. Все честно. Цитата после возвращения из процедуры прерываний, состоящей из одной команды iret (0xCF), портятся значения регистров АХ, SI и т.п. У меня все стоит  3 чтения на возврат из прерывания и 3 чтения очереди инструкций. Меняются только SP и BP - но BP из-за pop bp, стоящего перед iret.
--------------------
"Человек - это существо, которое охотнее всего рассуждает о том, в чем меньше всего разбирается." (с) С.Лем
|
|
|
|
|
Oct 17 2006, 15:03
|
Местный
  
Группа: Свой
Сообщений: 313
Регистрация: 8-09-04
Из: Таганрог
Пользователь №: 617

|
Так все заработало после исправлений в файле или до этого, тоже с прерываниями все было в порядке? Я пока с фриварным ядром возился, там тоже траблы, но человек исправляет, пока идет переписка. Извиняюсь за долгое молчание, только на форум попал, завтра обязательно попробую новый код
|
|
|
|
|
Oct 17 2006, 15:13
|
Знающий
   
Группа: Свой
Сообщений: 859
Регистрация: 7-04-05
Из: Санкт-Петербург
Пользователь №: 3 943

|
Цитата(cdg @ Oct 17 2006, 19:03)  Так все заработало после исправлений в файле или до этого, тоже с прерываниями все было в порядке? C исправленным, с оригинальным не проверял. Но мои исправления меняют поведение процессора от сброса до первой записи в IP (jump), так что думаю, что и с оригинальным должно работать тоже.
--------------------
"Человек - это существо, которое охотнее всего рассуждает о том, в чем меньше всего разбирается." (с) С.Лем
|
|
|
|
|
Oct 18 2006, 05:57
|
Местный
  
Группа: Свой
Сообщений: 313
Регистрация: 8-09-04
Из: Таганрог
Пользователь №: 617

|
Со стеком я премудрил, от того и с прерываниями косяк вышел, в тестбенче откусил область стека  Буду проверять, когда появится время, сейчас другой работы навалило. Еще могу сказать что в АРС ядре тот-же глючок, код то родственный  , лечится так-же. Вот еще бы утоптать их стэйт машины в память, что бы ядро ресурсов поменьше жрало, тогда не жизнь была, а сказка!
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|