Например TDA7294

Форум РадиоКот • Просмотр темы - Проблема с квартусом
Форум РадиоКот
Здесь можно немножко помяукать :)

Текущее время: Вс дек 14, 2025 23:20:42

Часовой пояс: UTC + 3 часа


ПРЯМО СЕЙЧАС:



Начать новую тему Ответить на тему  [ Сообщений: 6 ] 
Автор Сообщение
Не в сети
 Заголовок сообщения: Проблема с квартусом
СообщениеДобавлено: Ср фев 27, 2013 11:16:51 
Мучитель микросхем

Зарегистрирован: Чт авг 09, 2012 08:57:20
Сообщений: 426
Рейтинг сообщения: 0
Здравствуйте,хотел бы узнать.Есть модуль вывода. есть прошивка на верилоге ,она работает все хорошо.Но ,когда я вставляю модуль "на горячую" в крейт все лампочки зажигаются(ну или какая-то часть)такого быть не должно... Проблема в квартусе? может я опцию какую не включаю или еще чего? или все-таки в железе?


Код:
module D3 (WR,RES,RD,CS,DAT,A,OUT,PWR);
   input RES;
   input wire [3:0] A;
   input wire WR, RD, CS,PWR;
   inout wire [7:0] DAT;
   output wire [8:1] OUT;

   reg [7:0] D;
   reg [8:1] INREG;
   
   always @(negedge RD or negedge WR) 
   case (A)
   4'b0000:    D <= 8'b00100000;
   4'b0001:    D <= 8'b00010110;       
   4'b0010:    D <= 8'b00001000;     
   4'b0011:    D <= 8'b00001000;
   4'b0100:    D <= 8'b00001001;
   4'b1000:    D <= INREG;
   4'b1010:    D <= {4'b0, PWR, 3'b001};
   default:    D = 8'b00000000;
   endcase                   

   always @(negedge WR or negedge RES)
begin
   if (RES == 0)
        INREG <= 0;
    else if (!CS && A == 8)
        INREG <= DAT;
end   

  assign DAT[7:0]=(!CS&!RD)?D[7:0]:8'bz;
 
  assign OUT[1]=(INREG[1])?8'b0:8'bz;
  assign OUT[2]=(INREG[2])?8'b0:8'bz;
  assign OUT[3]=(INREG[3])?8'b0:8'bz;
  assign OUT[4]=(INREG[4])?8'b0:8'bz;
  assign OUT[5]=(INREG[5])?8'b0:8'bz;
  assign OUT[6]=(INREG[6])?8'b0:8'bz;
  assign OUT[7]=(INREG[7])?8'b0:8'bz;
  assign OUT[8]=(INREG[8])?8'b0:8'bz;
 
  endmodule
           


может можно как-то задать начальное значение пинов или что-нибудь такое. Микросхема Altera EPM3064 44/10


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Проблема с квартусом
СообщениеДобавлено: Ср фев 27, 2013 14:55:22 
Опытный кот
Аватар пользователя

Карма: 3
Рейтинг сообщений: 43
Зарегистрирован: Вт апр 12, 2011 18:38:19
Сообщений: 838
Откуда: с Земли
Рейтинг сообщения: 0
Единственное, что можно посоветовать - добавьте на плату супервизор питания, который будет генерировать сигнал сброса. Его соответственно, нужно подать на CPLD, и по этому сигналу устанавливать начальное состояние. Квартус тут совсем не при чем.

_________________
Все будет только лучше, в крайнем случае - хуже.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Проблема с квартусом
СообщениеДобавлено: Ср фев 27, 2013 14:57:17 
Мучитель микросхем

Зарегистрирован: Чт авг 09, 2012 08:57:20
Сообщений: 426
Рейтинг сообщения: 0
вот хотелось бы решить эту проблему на программном уровне,если можно)


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Проблема с квартусом
СообщениеДобавлено: Ср фев 27, 2013 17:39:12 
Мудрый кот
Аватар пользователя

Карма: 24
Рейтинг сообщений: 286
Зарегистрирован: Чт июн 10, 2010 08:55:35
Сообщений: 1810
Откуда: Сибирские Афины
Рейтинг сообщения: 0
Вы на горячую вставляете и у вас шум/дребезг контактов идёт пока не вставилось. Либо снаружи сброс с задержкой, как уже предложили. Либо таймер в ПЛИС. Но что-то кажется мне, что это "не айс".

_________________
Когда уже ничего не помогает - прочтите, наконец, инструкцию.
Лучший оптимизатор находится у вас между ушей. (Майкл Абраш, программист Quake и QuakeII)
Избыток информации ведёт к оскудению души - Леонтьев А. (сказано в 1965 г.)


Вернуться наверх
 
Эиком - электронные компоненты и радиодетали
Не в сети
 Заголовок сообщения: Re: Проблема с квартусом
СообщениеДобавлено: Ср фев 27, 2013 22:02:40 
Опытный кот
Аватар пользователя

Карма: 3
Рейтинг сообщений: 43
Зарегистрирован: Вт апр 12, 2011 18:38:19
Сообщений: 838
Откуда: с Земли
Рейтинг сообщения: 0
Kavka писал(а):
Либо таймер в ПЛИС.

Есть такая техника, однако для этого нужен вход внешнего клока (генератора).
Предположим, что такой клок есть и имя его clk
Код:
input clk;

wire reset;
reg[15:0] count;

reset = (count < 16'hFFFF);
 
always @(posedge clk) if(reset) count <= count+1'b1;



reset будет в состоянии 1, пока счетчик не "отмолотит" 65536 тактов, потом сбросится в 0. Однако этот код сожрет 16 логических ячеек, что для данной CPLD может быть проблемой. Можно, конечно, уменьшить разрядность счетчика count, тут все зависит от частоты клока и желаемого времени задержки.
PS: Идея, я думаю, понятна - остальное в Ваших руках. Однако решение с супервизором питания гораздо более простое и правильное.

_________________
Все будет только лучше, в крайнем случае - хуже.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Проблема с квартусом
СообщениеДобавлено: Чт фев 28, 2013 07:10:52 
Мучитель микросхем

Зарегистрирован: Чт авг 09, 2012 08:57:20
Сообщений: 426
Рейтинг сообщения: 0
Спасибо,попробую,в магистрали должна быть бегающая частота)Надо проверить)


Вернуться наверх
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 6 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 9


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y