Проблема с квартусом

Программируемая логика - это не так уж и сложно. Разберемся вместе.
Ответить
Nevox
Мучитель микросхем
Сообщения: 426
Зарегистрирован: Чт авг 09, 2012 08:57:20

Проблема с квартусом

Сообщение Nevox »

Здравствуйте,хотел бы узнать.Есть модуль вывода. есть прошивка на верилоге ,она работает все хорошо.Но ,когда я вставляю модуль "на горячую" в крейт все лампочки зажигаются(ну или какая-то часть)такого быть не должно... Проблема в квартусе? может я опцию какую не включаю или еще чего? или все-таки в железе?

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

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
Реклама
Аватара пользователя
coredumped
Опытный кот
Сообщения: 838
Зарегистрирован: Вт апр 12, 2011 18:38:19
Откуда: с Земли

Re: Проблема с квартусом

Сообщение coredumped »

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

Re: Проблема с квартусом

Сообщение Nevox »

вот хотелось бы решить эту проблему на программном уровне,если можно)
Аватара пользователя
Kavka
Мудрый кот
Сообщения: 1810
Зарегистрирован: Чт июн 10, 2010 08:55:35
Откуда: Сибирские Афины

Re: Проблема с квартусом

Сообщение Kavka »

Вы на горячую вставляете и у вас шум/дребезг контактов идёт пока не вставилось. Либо снаружи сброс с задержкой, как уже предложили. Либо таймер в ПЛИС. Но что-то кажется мне, что это "не айс".
Когда уже ничего не помогает - прочтите, наконец, инструкцию.
Лучший оптимизатор находится у вас между ушей. (Майкл Абраш, программист Quake и QuakeII)
Избыток информации ведёт к оскудению души - Леонтьев А. (сказано в 1965 г.)
Реклама
Эиком - электронные компоненты и радиодетали
Аватара пользователя
coredumped
Опытный кот
Сообщения: 838
Зарегистрирован: Вт апр 12, 2011 18:38:19
Откуда: с Земли

Re: Проблема с квартусом

Сообщение coredumped »

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: Идея, я думаю, понятна - остальное в Ваших руках. Однако решение с супервизором питания гораздо более простое и правильное.
Все будет только лучше, в крайнем случае - хуже.
Реклама
Nevox
Мучитель микросхем
Сообщения: 426
Зарегистрирован: Чт авг 09, 2012 08:57:20

Re: Проблема с квартусом

Сообщение Nevox »

Спасибо,попробую,в магистрали должна быть бегающая частота)Надо проверить)
Реклама
Ответить

Вернуться в «ПЛИС»