Мелкие вопросы по МК и ПЛИС.

Если ваш вопрос не влез ни в одну из вышеперечисленных тем, вам сюда.
Nevox
Мучитель микросхем
Сообщения: 426
Зарегистрирован: Чт авг 09, 2012 08:57:20

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение Nevox »

Здравствуйте.попытка номер 2.

хотел бы спросить как осуществить запись в регистр в Verilog.

вот код

Код: Выделить всё

module SN_DVV_14_220V (IN,INT,WR,RD,CS,RESET,DAT,A);
   input wire [3:0] A;
   input wire [13:0]IN;
   input wire WR, RD, CS, RESET,INT;
   inout [7:0] DAT;
    
   reg [7:0] D;
      

  assign DAT[7:0]=(!CS&!RD)?D[7:0]:8'bz;
 
 always @(negedge RD)
    
   case (A)
       4'b0000:    D = 8'b00010000;
       4'b0001:    D = 8'b00100011;       
       4'b0010:    D = 8'b00001110;    
       4'b0011:    D = 8'b00001000;
       4'b1000:    D = IN[7:0];
       4'b1001:    D <= {2'b0, IN[13:8]};
       default:    D = 8'b00000000;
   endcase
  endmodule


здесь в операторе кейс идет считывание регистров,как мне написать так,чтобы я мог в этот регистр что-нибудь записать?
Аватара пользователя
ibiza11
Поставщик валерьянки для Кота
Сообщения: 1900
Зарегистрирован: Сб фев 21, 2009 13:11:40
Откуда: Москва

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение ibiza11 »

хотел бы спросить как осуществить запись в регистр в Verilog.
вот здесь у вас идет запись в регистр

Код: Выделить всё

4'b1001:    D <= {2'b0, IN[13:8]};
Ставим плюсы: )
Nevox
Мучитель микросхем
Сообщения: 426
Зарегистрирован: Чт авг 09, 2012 08:57:20

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение Nevox »

а как написать условие в регистрах?
допустим при одном условии у нас в регистр пишется одно значение , а в другом случае пишется другое значение? внутри кейса можно это сделать?
AlexSun
Первый раз сказал Мяу!
Сообщения: 31
Зарегистрирован: Пт ноя 02, 2012 21:52:47

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение AlexSun »

Есть прошивка для PIC18F252 в формате HEX, она делает некие дела и шлет в RS232 "Готово". Возможно ли ее дизассемблировать и изменить это "Готово" на другую строку такой же длины?
Аватара пользователя
Engineer_Keen
Друг Кота
Сообщения: 3868
Зарегистрирован: Пт янв 29, 2010 10:27:40
Откуда: Москва

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение Engineer_Keen »

Конечно можно...
Можно даже не дизассемблировать, а править прямо HEX, только контрольную сумму подправить, это при условии что строчка - простая последовательность ASCII символов. Искать последовательность C3 EE F2 EE E2 EE.
Последний раз редактировалось Engineer_Keen Чт дек 20, 2012 14:53:32, всего редактировалось 1 раз.
Аватара пользователя
black_lizard
Встал на лапы
Сообщения: 132
Зарегистрирован: Вс сен 23, 2012 05:51:35

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение black_lizard »

Есть прошивка для PIC18F252 в формате HEX, она делает некие дела и выводит на экран "текст". Возможно ли ее дизассемблировать и изменить этот "текст"?


Любым HEX редактором.
Собираю самопальный мини-компьютер
AlexSun
Первый раз сказал Мяу!
Сообщения: 31
Зарегистрирован: Пт ноя 02, 2012 21:52:47

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение AlexSun »

Engineer_Keen, где находится контрольная сумма и как ее узнать для отредактированного кода?
"Готово" так и будет написано подряд в HEX редакторе? (в 16 системе естественно)
В коде программы знаю было printf("Готово");
Аватара пользователя
Gudd-Head
Друг Кота
Сообщения: 20091
Зарегистрирован: Чт сен 18, 2008 12:27:21
Откуда: Столица Мира Санкт-Петербург

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение Gudd-Head »

AlexSun писал(а):"Готово" так и будет написано подряд в HEX редакторе?

Не факт. Может чередоваться вызовами функций вывода на дисплей.
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
Аватара пользователя
Engineer_Keen
Друг Кота
Сообщения: 3868
Зарегистрирован: Пт янв 29, 2010 10:27:40
Откуда: Москва

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение Engineer_Keen »

AlexSun писал(а):где находится контрольная сумма и как ее узнать для отредактированного кода?

контрольная сумма - последний байт в каждой строке HEX-файла. Считается как сумма всех байт в строке по модулю 256, отнятая от 256.
AlexSun писал(а):"Готово" так и будет написано подряд в HEX редакторе? (в 16 системе естественно)

HEX редактор не нужен, HEX файл можно редактировать простым блокнотом, там просто последовательности 16-х чисел.
Будет ли там так написано, зависит от компилятора и структуры программы, если будет, то повезло. Меняем на то что надо и пересчитываем контрольные суммы для строк в которых менялись дынные.
На всякий случай - описание формата Intel HEX
Gudd-Head писал(а):Не факт. Может чередоваться вызовами функций вывода на дисплей.

Ну раз там printf("Готово"), скорее всего все таки последовательность .db "Готово", причем или рядом с процедурой ее вызывающей или где-то в конце кода.
AlexSun
Первый раз сказал Мяу!
Сообщения: 31
Зарегистрирован: Пт ноя 02, 2012 21:52:47

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение AlexSun »

Engineer_Keen писал(а):контрольная сумма - последний байт в каждой строке HEX-файла. Считается как сумма всех байт в строке по модулю 256, отнятая от 256.

То есть 256 - (сумма байтов % 256), я правильно понял?
Engineer_Keen писал(а):Будет ли там так написано, зависит от компилятора и структуры программы, если будет, то повезло.

Компилятор CCS PIC C, строка выводится вся сразу.

Спасибо за информацию, отпишу потом о результатах.
Аватара пользователя
Engineer_Keen
Друг Кота
Сообщения: 3868
Зарегистрирован: Пт янв 29, 2010 10:27:40
Откуда: Москва

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение Engineer_Keen »

AlexSun писал(а):То есть 256 - (сумма байтов % 256), я правильно понял?

Если % это сумма по модулю 256, то да. Или CRC=256 - (сумма байтов AND 255), тоже самое.
AlexSun
Первый раз сказал Мяу!
Сообщения: 31
Зарегистрирован: Пт ноя 02, 2012 21:52:47

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение AlexSun »

CC научился считать...

"Готово" нашел в первых строках прошивки. Заканчивается нулем. А строку другой длины невозможно туда вписать? Адреса придется править?
Аватара пользователя
Engineer_Keen
Друг Кота
Сообщения: 3868
Зарегистрирован: Пт янв 29, 2010 10:27:40
Откуда: Москва

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение Engineer_Keen »

AlexSun писал(а):CC научился считать...

Можете себя проверить, сравнив последние числа в строках HEX файле с тем что получится если посчитать вручную.
AlexSun писал(а):А строку другой длины невозможно туда вписать? Адреса придется править?

Как минимум адреса и только после дизассемблера, тут уже без этого никак.
AlexSun
Первый раз сказал Мяу!
Сообщения: 31
Зарегистрирован: Пт ноя 02, 2012 21:52:47

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение AlexSun »

После дизассемблера в PIC C я не нахожу там в коде "Готово", не целиком, не отдельные символы. Чем тогда дизассемблерировать и чем потом собрать HEX?
Аватара пользователя
Engineer_Keen
Друг Кота
Сообщения: 3868
Зарегистрирован: Пт янв 29, 2010 10:27:40
Откуда: Москва

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение Engineer_Keen »

Дизассемблер не скажет что там лежит слово "готово" прямо в виде .db "Готово", он только может сказать что по такому-то адресу какие-то данные или неверная команда, а может и за последовательность команд принять. Посмотрите по HEX файлу, с какого адреса начинается слово, и найдите это место в дизассемблированной программе.
Nevox
Мучитель микросхем
Сообщения: 426
Зарегистрирован: Чт авг 09, 2012 08:57:20

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение Nevox »

Здравствуйте.Идея такая: есть процессорный модуль,который управляет другими модулями. На подчиненных подулях стоят плисы альтера на 44 пина серии 3000А(конкретно 3064),как надо написать в прошивке плисов,чтобы процессорный модуль мог менять регистры подчиненным модулям? нужно какое-то разрешение? или как-то регистры задать?

вариант прошивки опять же вот

Код: Выделить всё

SUBDESIGN SN_DVV_14_220V
(
   RES, INT : INPUT;
   WR       : INPUT;
   RD       : INPUT;
   CS       : INPUT;
   DAT[7..0]: BIDIR;
   A[3..0]    : INPUT;
   IN[13..0]: INPUT;
)
VARIABLE

 D[7..0]     : NODE;
BEGIN
  D[7..0] = (16&(A[3..0]==0))#
          (35&(A[3..0]==1))#
          (14&(A[3..0]==2))#
          (8&(A[3..0]==3))#
          (0&(A[3..0]==4))#
          (0&(A[3..0]==5))#
          (0&(A[3..0]==6))#
          (0&(A[3..0]==7))#
          (IN[7..0]&(A[3..0]==8));
 D[5..0] =    (IN[13..8]&(A[3..0]==9));
 
   DAT0 = TRI(D0,!CS&!RD);
   DAT1 = TRI(D1,!CS&!RD);
   DAT2 = TRI(D2,!CS&!RD);
   DAT3 = TRI(D3,!CS&!RD);
   DAT4 = TRI(D4,!CS&!RD);
   DAT5 = TRI(D5,!CS&!RD);
   DAT6 = TRI(D6,!CS&!RD);
   DAT7 = TRI(D7,!CS&!RD);
   
END;
Аватара пользователя
ibiza11
Поставщик валерьянки для Кота
Сообщения: 1900
Зарегистрирован: Сб фев 21, 2009 13:11:40
Откуда: Москва

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение ibiza11 »

Nevox, сужу по Вашим постам и вот что думаю: либо Вы не умеете задавать вопросы, либо Вы слишком ленивы, чтобы самостоятельно в чем-то разбраться. По количеству информации, которую Вы приводите на обсуждение форума невозможно догадаться, что и как у Вас там устроено. Я про это упоминал в своем предыдущем посте, адресованном Вам. Не каждый захочет уточнять все условия Вашей(!) задачи, чтобы ее решить. Перечитайте свой пост и попробуйте подумать, чего нехватает в нем, прежде чем его постить на форум.
При всем уважении конечно, но по-моему Вы не ту профессию выбрали.
Ставим плюсы: )
Аватара пользователя
Sceam73
Встал на лапы
Сообщения: 86
Зарегистрирован: Вт авг 28, 2012 21:07:09

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение Sceam73 »

Приведите ктонибудь пожалуйста простенький пример разрешения вложеных прерываний на с++ клмпилятор CVAVR
И еще вопрос, можно ли в регистры прерывания таймера по совпадению, как то записывать значения в 10тичном виде ?
Nevox
Мучитель микросхем
Сообщения: 426
Зарегистрирован: Чт авг 09, 2012 08:57:20

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение Nevox »

ibiza11 писал(а):Nevox, сужу по Вашим постам и вот что думаю: либо Вы не умеете задавать вопросы, либо Вы слишком ленивы, чтобы самостоятельно в чем-то разбраться.



я как раз-таки разбираюсь,просто по-тихоньку,как встаю в тупик сразу спрашиваю и продолжаю параллельно копать.
Просто я думал,что тут помогают людям встать на ноги советами, а не фразами в стиле при всем уважении...
Дали задачу, я продумываю варианты,просто вдруг кто-то что-то подобное делал.
Аватара пользователя
Meteor
Друг Кота
Сообщения: 3961
Зарегистрирован: Пн июл 13, 2009 14:37:39
Откуда: Московская область, наукоград.....
Контактная информация:

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение Meteor »

to Nevox, читал ваши посты и при всем желании помочь ничего не смог понять.
То вы пишете о синтезе на верилог, который больше походит на AHDL, то сумбурное "хочу менять назначение регистров"
Вы бы хоть как то структурировали свои вопросы, полезно даже зарисовки сделать. Вот откуда я должен знать что за регистры между модулями? Как они управляются и как вы хотите изменить?
Все что могу посоветовать из этого воппроса - сделать жуткого вида демультиплексор, на реализацию которого уйдет средненький циклончик и явно не хватит объема ЕРМ3000
Загружая на вход компьютера "мусор", на выходе получим "мусор^32".
PS. Не работаю с: Proteus, Multisim, EWB, Micro-Cap... не спрашивайте даже
Ответить

Вернуться в «Разные вопросы по МК»