А зачем ?Tronix wrote: А как понять, что чтение из порта произошло?
ISA-8 SD-контроллер (SPI) на CPLD
Moderator: Shaos
-
- Devil
- Posts: 716
- Joined: 30 Nov 2013 11:08
- Location: WWW
Re: ISA-8 SD-контроллер (SPI) на CPLD
-
- Doomed
- Posts: 662
- Joined: 18 Nov 2013 02:38
- Location: Москва
Re: ISA-8 SD-контроллер (SPI) на CPLD
Вообщем не сдается наш гордый варяг. Вчера весь день провозился с тремя строчками кода в верилоге безрезультатно. Добился того, что все отлично работает
out dx,al
out dx,al
out dx,al
выполняется
out dx,al
in al,dx
выполняется
in al,dx
in al,dx
in al,dx
выполняется
in al,dx
out dx,al
выполняется
Но когда инициализируется SD карта и идет чтение сектора в какой-то момент сдвигается 7 бит, вместо 8. И дальше опять по 8 бит. Оно даже умудряется при таком раскладе как-то работать, но так нельзя.
При тестовых прогонах не могу достичь такого-же эффекта. Все работает как надо.
Не могу закономерности выявить. Попробую на неделе еще раз подойти к устройству.
out dx,al
out dx,al
out dx,al
выполняется
out dx,al
in al,dx
выполняется
in al,dx
in al,dx
in al,dx
выполняется
in al,dx
out dx,al
выполняется
Но когда инициализируется SD карта и идет чтение сектора в какой-то момент сдвигается 7 бит, вместо 8. И дальше опять по 8 бит. Оно даже умудряется при таком раскладе как-то работать, но так нельзя.
При тестовых прогонах не могу достичь такого-же эффекта. Все работает как надо.
Не могу закономерности выявить. Попробую на неделе еще раз подойти к устройству.
-
- Supreme God
- Posts: 16689
- Joined: 21 Oct 2009 08:08
- Location: Россия
Re: ISA-8 SD-контроллер (SPI) на CPLD
Ну я не гигантский спец в верилоге и прочих этих языках, но когда я тут начинал, и мне помогалиTronix wrote:Вчера весь день провозился с тремя строчками кода в верилоге безрезультатно.
out dx,al
out dx,al
out dx,al
выполняется
out dx,al
in al,dx
все коллеги по форуму, обратил я внимание на одно замечание, что текст в верилоге - это не программа
в привычном понимании, там многие вещи выполняются одновременно, если не сказано иное.
Может быть, ты на этом спотыкаешься?
iLavr
-
- Doomed
- Posts: 662
- Joined: 18 Nov 2013 02:38
- Location: Москва
Re: ISA-8 SD-контроллер (SPI) на CPLD
Это у меня в начале тоже было такое, сейчас вроде "переключился". Однако конечно влияет полное отсутствие опыта и никаких средств отладки, кроме внешнего анализатора. Наверное начать было нужно все-таки со светодиода на нормальной отладке с нормальной ПЛИС.Lavr wrote:многие вещи выполняются одновременно, если не сказано иное.
Может быть, ты на этом спотыкаешься?
-
- Devil
- Posts: 716
- Joined: 30 Nov 2013 11:08
- Location: WWW
Re: ISA-8 SD-контроллер (SPI) на CPLD
Возможно, где-то быстродействия не хватает, хотя маловероятно. Можно попробовать на пониженной тактовой частотеTronix wrote:Но когда инициализируется SD карта и идет чтение сектора в какой-то момент сдвигается 7 бит, вместо 8.
-
- Maniac
- Posts: 261
- Joined: 22 Jun 2005 04:35
- Location: МО Россия
Re: ISA-8 SD-контроллер (SPI) на CPLD
У меня нечто похожее было когда визнет подключал по spi к спектруму.Tronix wrote:Но когда инициализируется SD карта и идет чтение сектора в какой-то момент сдвигается 7 бит, вместо 8.
Вот здесь я об этом намекал viewtopic.php?p=141508#p141508
Как оказалось - несоответствие времянок spi, не помню точно толи слишком рано, толи слишком поздно защёлкивался MOSI в рег.
Чуть сдвинул и всё заработало.
-
- Doomed
- Posts: 662
- Joined: 18 Nov 2013 02:38
- Location: Москва
Re: ISA-8 SD-контроллер (SPI) на CPLD
Да ну не, как это? Там же цикл грубо говоря. Пока до семи не досчитает (счет от нуля), не снимется флаг занятости и не поднимется READY. То есть до семи он досчитывает. Начинает не с ноля? Потенциально вижу что-то такое, но картинка каждый раз рассыпается когда пытаюсь в уме прокрутить код.newold86 wrote:Возможно, где-то быстродействия не хватает, хотя маловероятно. Можно попробовать на пониженной тактовой частотеTronix wrote:Но когда инициализируется SD карта и идет чтение сектора в какой-то момент сдвигается 7 бит, вместо 8.
-
- Doomed
- Posts: 662
- Joined: 18 Nov 2013 02:38
- Location: Москва
Re: ISA-8 SD-контроллер (SPI) на CPLD
Не знаю как, в который уже раз, но поехало. Перед запуском SPI обождал один цикл, введя регистр. Какой-то отдаленной частью мозга понимаю, почему так, но объяснить не могу 

-
- Supreme God
- Posts: 16689
- Joined: 21 Oct 2009 08:08
- Location: Россия
Re: ISA-8 SD-контроллер (SPI) на CPLD
Если тебе не трудно - выложи конверсию кода в схему.Tronix wrote:Перед запуском SPI обождал один цикл, введя регистр.
Интересно взглянуть, как Квартус себе это представляет...
iLavr
-
- Doomed
- Posts: 662
- Joined: 18 Nov 2013 02:38
- Location: Москва
Re: ISA-8 SD-контроллер (SPI) на CPLD
Да мне не трудно, выкладываю, но схема мало-информативная, на мой взгляд.Lavr wrote:Если тебе не трудно - выложи конверсию кода в схему.Tronix wrote:Перед запуском SPI обождал один цикл, введя регистр.
Интересно взглянуть, как Квартус себе это представляет...
Так как аппаратная часть более менее устаканилась вроде, задумался о BIOS. newold86 - вы каким ассемблером собирали? Я собрал ваш биос wasm. Собрался более-менее. Думаю в идеале бы написать эмулятор SD карты и встроить куда-нибудь в эмулятор PCEm....
You do not have the required permissions to view the files attached to this post.
-
- Devil
- Posts: 716
- Joined: 30 Nov 2013 11:08
- Location: WWW
Re: ISA-8 SD-контроллер (SPI) на CPLD
Я схемы от Quartus'а понимаю только в том случае, когда знаю совершенно определенно, в какое именно место нужно смотреть (если есть четко локализованная проблема, с которой нужно разобраться). В целях общего понимая картинки из Quartus'а в моей голове не помещаются...Tronix wrote:Да мне не трудно, выкладываю, но схема мало-информативная, на мой взгляд.
MASM6 - я вроде ничего там не применял компиляторно-зависимого, так как все подобные штучки давно забылTronix wrote:newold86 - вы каким ассемблером собирали? Я собрал ваш биос wasm. Собрался более-менее. Думаю в идеале бы написать эмулятор SD карты и встроить куда-нибудь в эмулятор PCEm....

Как уже говорил, мой код нужно доделать, как минимум, в части пересчета CHS, так как сейчас все жестко завязано на конкретный образ диска http://zet.aluzina.org/images/9/9c/C.img.zip
-
- Doomed
- Posts: 449
- Joined: 08 Apr 2013 04:04
- Location: 213.247.249.139
Re: ISA-8 SD-контроллер (SPI) на CPLD
Имеет какой-то смысл смотреть только схемы "technology map", где ква раскладывает по ячейкам.newold86 wrote:Я схемы от Quartus'а понимаю только в том случае, когда знаю совершенно определенно, в какое именно место нужно смотреть (если есть четко локализованная проблема, с которой нужно разобраться). В целях общего понимая картинки из Quartus'а в моей голове не помещаются...Tronix wrote:Да мне не трудно, выкладываю, но схема мало-информативная, на мой взгляд.
А вот смотреть RTL viewer'ом (как на картинке выше) нет никакого смысла -- там ровно то же самое, что и в верилоге понаписали, только картинками. На что какбэ название и намекает - "RTL viewer".
привет засранцу лавру :)
-
- Doomed
- Posts: 370
- Joined: 16 Dec 2014 11:58
- Location: Киев
Re: ISA-8 SD-контроллер (SPI) на CPLD
Tronix wrote:Да мне не трудно, выкладываю, но схема мало-информативная, на мой взгляд.
Соглашусь с обоими ораторами. Ежели просто посмотреть чего-ты-там-накодил в виде схемы - сие нечитабельно от слова совсем.newold86 wrote:Я схемы от Quartus'а понимаю только в том случае, когда знаю совершенно определенно, в какое именно место нужно смотреть (если есть четко локализованная проблема, с которой нужно разобраться)
А вот если есть некий неуловимый баг, то схема иногда очень четко дает понять, что у тебя лажа.
Увы, сейчас примера картинки привести не могу, но надо было мне выполнить ротацию 8-битного регистра на бит влево по posedge.
Code: Select all
alaways @(posedge CLK)
some_reg <= {some_reg[6:1],some_reg[7]}; //да, я знаю, что это даже не компильнется, но мой баг был очень похож
Зато, когда смотришь в схему, видишь полнейшую бредятину.
Какой именно смысл?angry_troll wrote:Имеет какой-то смысл смотреть только схемы "technology map", где ква раскладывает по ячейкам
Я спрашиваю, потому как сам тупил в ЭТО, но так и не понял, зачем мне это надо.
Не, я знаю, что вроде можно как-то рулить фиттером, если очень надо обеспечить задержку от А до Б, но... у меня задач таких не было.
-
- Doomed
- Posts: 449
- Joined: 08 Apr 2013 04:04
- Location: 213.247.249.139
Re: ISA-8 SD-контроллер (SPI) на CPLD
Да вроде должно... (компильнуться)Vic3Dexe wrote:Code: Select all
alaways @(posedge CLK) some_reg <= {some_reg[6:1],some_reg[7]}; //да, я знаю, что это даже не компильнется, но мой баг был очень похож

Ну самый прямой, что-то сложнее A+B можно написать мульёном разных способов, и какой-нибудь из них может плохо лечь на ячейки (особенно актуально для ФПГА, где [в недорогих] ячейки строго 4-входовые), например в случае приоритетных энкодеров или мультиплексора "много-в-1". Есть правда лажа с тем, что в больших дизайнах уже каша, но тем не менее, может оказаться полезным. Ещё вариант вспомнил. Допустим, допущена какая-то ошибка, из-за которой какие-либо выходы всегда 0 (или всегда 1). В технолоджи вьювере это сразу будет видно (выход будет подсоединён к константе и ещё в таких случаях куча логики обычно выпиливаeтся ква). Другое дело что причину этого ни один из этих вьюверов не сообщит, да.Какой именно смысл?angry_troll wrote:Имеет какой-то смысл смотреть только схемы "technology map", где ква раскладывает по ячейкам
Я спрашиваю, потому как сам тупил в ЭТО, но так и не понял, зачем мне это надо.
Не, я знаю, что вроде можно как-то рулить фиттером, если очень надо обеспечить задержку от А до Б, но... у меня задач таких не было.
Ну и пожалуй соглашусь с тем, что лажа может быть и в ртл вьювере видна. Иногда

привет засранцу лавру :)
-
- Supreme God
- Posts: 16689
- Joined: 21 Oct 2009 08:08
- Location: Россия
Re: ISA-8 SD-контроллер (SPI) на CPLD
На мой взгляд - всё вполне читабельно. Не хотел лишний раз здесь оффтопить, но спасибо Tronix-у, что не отказал.Vic3Dexe wrote:Ежели просто посмотреть чего-ты-там-накодил в виде схемы - сие нечитабельно от слова совсем.
Меня как раз интересует, как эти системы представляют схемотехнически свой код. Мне лично это кажется полезным.
iLavr