arcer 0 30 ноября, 2010 Опубликовано 30 ноября, 2010 · Жалоба Здравствуйте, уважаемые форумчане! Кратко о себе - Xilinx ISE WebPack, язык - Verilog=) Проблема такова: есть две кнопки - but1/but2 . Реакция на них, к примеру, зажигание диодa led. Пишу код: output reg led; input bu1,but2; always @(posedge but1) led<=1; always @(posedge but2) led<=0; В результате - ошибка типа "изменение регистра led в двух блоках одновременно..." Как с этим бороться? И еще вдогонку (очень смешной, просто хочется удостоверится на 200%): led<=1 - диод включится и останется гореть или с ним будет происходить что-то неадекватное? Спасибо за помощь! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Shtirlits 0 1 декабря, 2010 Опубликовано 1 декабря, 2010 · Жалоба Возьмите документацию на микросхему, для которой пишете. Если вам все равно какая, то и возьмите datasheet на первую попавшуюся. Теперь посмотрите, во что бы такое могла синтезироваться ваша конструкция. Искать нужно в разделах с примерно такими названиями: Functional Description->Configurable Logic Block->Slices (так в datasheet на Spartan 3E) Еще стоит заглянуть в Functional Description->Input/Output Blocks-> IOB Overview. Там тоже есть регистры. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ReAl 0 1 декабря, 2010 Опубликовано 1 декабря, 2010 · Жалоба После чего заглянуть в тему http://electronix.ru/forum/index.php?s=&am...st&p=831264 за решением задачи на двух регистрах. Хотя именно для кнопок и светодиодов асинхронный RS-триггер самое оно. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Sefo 0 1 декабря, 2010 Опубликовано 1 декабря, 2010 · Жалоба Я бы посоветовал сначала с Verilog-ом разобраться - явно нет осознания что далеко не все написанное может быть просинтезировано и, в некоторых случаях, даже промоделировано. HDL-языки это не языки программирования. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
yura-w 0 1 декабря, 2010 Опубликовано 1 декабря, 2010 · Жалоба И еще вдогонку (очень смешной, просто хочется удостоверится на 200%): led<=1 - диод включится и останется гореть или с ним будет происходить что-то неадекватное? ну если надо аж 200%, то светодиод включится при led<=1, если он подключен анодом к плис (если катодом то надо led<=0) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ViKo 1 1 декабря, 2010 Опубликовано 1 декабря, 2010 · Жалоба Вот пара примеров. Посмотрите в RTL Viewer, как выглядят схемы. module exTwoEdges ( input wire clk1, clk2, output logic dout ); always @(posedge clk1, posedge clk2) begin if (clk1) dout = 0; if (clk2) dout = 1; end endmodule module exTwoEdges ( input wire clk1, clk2, output logic dout ); always @(posedge clk1, posedge clk2) if (clk1) dout = 0; else dout = 1; endmodule Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться