Например TDA7294

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



Текущее время: Пн фев 19, 2018 20:23:27



Часовой пояс: UTC + 3 часа [ Летнее время ]


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



Начать новую тему Ответить на тему  [ Сообщений: 68 ]  На страницу Пред.  1, 2, 3, 4  След.
Автор Сообщение
Не в сети
 Заголовок сообщения: Re: вопросы по Verilog
СообщениеДобавлено: Ср дек 19, 2012 10:27:49 
Мудрый кот
Аватар пользователя

Карма: 21
Зарегистрирован: Сб фев 21, 2009 14:11:40
Сообщений: 1898
Откуда: Москва
Рейтинг сообщения: 0
Вы по-ходу даже сами не представляете, что просите...

_________________
Ставим плюсы: )


Вернуться наверх
 Профиль  
 
Не в сети
 Заголовок сообщения: Re: вопросы по Verilog
СообщениеДобавлено: Ср дек 19, 2012 11:08:57 
Потрогал лапой паяльник

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


Вернуться наверх
 Профиль  
 
JLCPCB Prototype, Бесплатная доставка первого заказа + $2 на прототип ПП!

Крупнейший производитель печатных плат в Китае, 290,000+ заказчиков, 8,000+ он-лайн заказов в день.

Цена за 10 плат: $2 за 2-х слойную, $15 за 4-х слойную, $74 за 6-ти слойную.

LCSC Parts: Экономия до 50%, большой выбор компонентов в наличии, отправка заказа в день оплаты.

Не в сети
 Заголовок сообщения: Re: вопросы по Verilog
СообщениеДобавлено: Ср дек 19, 2012 11:18:17 
Мудрый кот
Аватар пользователя

Карма: 21
Зарегистрирован: Сб фев 21, 2009 14:11:40
Сообщений: 1898
Откуда: Москва
Рейтинг сообщения: 0
Это Вы меня спрашиваете?) Откуда я знаю какой это модуль????:))
И вообще, если модуль вышел из строя, то из него заведомо не могут идти не ложные данные. Зачем тогда его заменять, если из него идут верные данные?)))

_________________
Ставим плюсы: )


Вернуться наверх
 Профиль  
 

Не в сети
 Заголовок сообщения: Re: вопросы по Verilog
СообщениеДобавлено: Ср дек 19, 2012 11:23:43 
Потрогал лапой паяльник

Зарегистрирован: Чт авг 09, 2012 09:57:20
Сообщений: 370
Рейтинг сообщения: 0
ложные данные в любом случае будут,если модуль неисправен, надо как-то дать понять микропроцессорному модулю,что подчиненный модуль неисправен. вот и спрашиваю,Как это можно сделать на программном уровне.

модули стоят в крейте обмениваются по шине SPI.


Вернуться наверх
 Профиль  
 

Не в сети
 Заголовок сообщения: Re: вопросы по Verilog
СообщениеДобавлено: Ср дек 19, 2012 11:45:54 
Мудрый кот
Аватар пользователя

Карма: 21
Зарегистрирован: Сб фев 21, 2009 14:11:40
Сообщений: 1898
Откуда: Москва
Рейтинг сообщения: 0
во-первых, тема про Verilog, а Вы уже что-то другое обсуждать начали
во-вторых, телепаты в отпуске, Вашу проблему надо решать в комплексе.

_________________
Ставим плюсы: )


Вернуться наверх
 Профиль  
 
Не в сети
 Заголовок сообщения: Re: вопросы по Verilog
СообщениеДобавлено: Ср дек 19, 2012 11:47:35 
Потрогал лапой паяльник

Зарегистрирован: Чт авг 09, 2012 09:57:20
Сообщений: 370
Рейтинг сообщения: 0
ну я думаю сделать регистр, в который записать идентификатор модуля. Периодически его читать. Если считанное не совпадает с тем что предполагает считать шкаф,то косяк, но некоторые биты будут теряться все равно.


Вернуться наверх
 Профиль  
 
Не в сети
 Заголовок сообщения: Re: вопросы по Verilog
СообщениеДобавлено: Чт дек 27, 2012 09:18:03 
Потрогал лапой паяльник

Зарегистрирован: Чт авг 09, 2012 09:57:20
Сообщений: 370
Рейтинг сообщения: 0
Помогите пожалуйста переписать код с AHDL на Verilog


CASE RES_SV IS
WHEN B"1" => RES_CASE = VCC;
WHEN B"x" => RES_CASE = VCC;
WHEN B"0" => RES_CASE = GND;
END CASE;

RESET=RES AND RES_CASE;


Вернуться наверх
 Профиль  
 
Не в сети
 Заголовок сообщения: Re: вопросы по Verilog
СообщениеДобавлено: Пт фев 01, 2013 09:20:11 
Потрогал лапой паяльник

Зарегистрирован: Чт авг 09, 2012 09:57:20
Сообщений: 370
Рейтинг сообщения: 0
Надеюсь,что кто-то поможет.

Вот что было на AHDL.

Код:
SUBDESIGN 16OUTS
(
   WR       : INPUT;
   RESET    : INPUT;
   RD       : INPUT;
   CS       : INPUT;
   DAT[7..0]: BIDIR;
   A[3..0]    : INPUT;
   OUT[15..0]: OUTPUT;
)
VARIABLE
 IN_REG[15..0]: LATCH;
 D[7..0]    : NODE;   
BEGIN
  D[7..0] = (32&(A[3..0]==0))#
          (21&(A[3..0]==1))#
          (16&(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_REG[7..0]&(A[3..0]==8))#
          (IN_REG[15..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);

   IN_REG[15..8].D = DAT[7..0]&RESET;
   IN_REG[7..0].D  = DAT[7..0]&RESET;
   
   IN_REG[7..0].ENA  =  (!CS&!WR&(A[]==8))#!RESET;
   IN_REG[15..8].ENA =  (!CS&!WR&(A[]==9))#!RESET;

   OUT[] = !IN_REG[];

END;




вот как я написал :

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

   reg [7:0] D;
   reg [15:0] INREG;
   
   always @(negedge RD or negedge WR) 
   case (A)
   4'b0000:    D <= 8'b00100000;
   4'b0001:    D <= 8'b00010101;       
   4'b0010:    D <= 8'b00010000;     
   4'b0011:    D <= 8'b00001000;
   4'b1000:    D <= INREG[7:0];
   4'b1001:    D <= INREG[15:8];
   default:    D = 8'b00000000;
   endcase                   

   always @(negedge WR or negedge RES)
begin
   if (RES == 0)
        INREG <= 0;
    else if ((!CS && !WR && A == 4'b1000)||!RES)
        INREG[7:0] <= DAT;
    else if ((!CS && !WR && A == 4'b1001)||!RES)
        INREG[15:8] <= DAT; 
end   

  assign DAT[7:0]=(!CS&!RD)?D[7:0]:8'bz;
 
  assign OUT[15:0]=!INREG[15:0];

  endmodule




и все равно не хочет работать. Может дело в этом триггере-защелке LATCH? но я не нашел как описать этот LATCH на верилоге.


Вернуться наверх
 Профиль  
 
Не в сети
 Заголовок сообщения: Re: вопросы по Verilog
СообщениеДобавлено: Пт фев 01, 2013 10:56:57 
Мудрый кот
Аватар пользователя

Карма: 24
Зарегистрирован: Чт июн 10, 2010 09:55:35
Сообщений: 1779
Откуда: Сибирские Афины
Рейтинг сообщения: 0
Похоже, что речь идёт о том, что называется transparent latch. Их надо отдельно делать.
Код:
always @(d, g)
begin: latch
    if (g == 1)
    begin
        q <= d;
    end
end

Или так

reg out;
always @(gate or din)
  if(gate)
    out = din;
Как-то так. С синтаксисом мог ошибиться, но идея такая.

Вот ещё, может кому пригодиться: http://eesun.free.fr/DOC/VERILOG/synvlg.html

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


Вернуться наверх
 Профиль  
 
Не в сети
 Заголовок сообщения: Re: вопросы по Verilog
СообщениеДобавлено: Пт фев 01, 2013 11:08:45 
Потрогал лапой паяльник

Зарегистрирован: Чт авг 09, 2012 09:57:20
Сообщений: 370
Рейтинг сообщения: 0
у меня это будет как-то так?


Код:
 always @(A==8 or  A==9)
begin
   if (A==8)
 INREG[7:0] <= DAT; 
    else if ((!CS && !WR && A == 4'b1001)||!RES)
        INREG[15:8] <= DAT; 


тогда не будет условия при RES==0


или это будет так?

Код:
  always @(A==8 or  INREG)
begin
   if (A==8)
 INREG[7:0] <= DAT;
else if
INREG<=0; 

  always @(A==9 or  INREG)
begin
   if (A==9)
 INREG[15:8] <= DAT;
else if
INREG<=0; 


или чего я не понимаю?


Вернуться наверх
 Профиль  
 
Не в сети
 Заголовок сообщения: Re: вопросы по Verilog
СообщениеДобавлено: Пт фев 01, 2013 11:27:20 
Потрогал лапой паяльник

Зарегистрирован: Чт авг 09, 2012 09:57:20
Сообщений: 370
Рейтинг сообщения: 0
Просто по ссылке,которую вы скинули,я нашел раздел Latches.


Там описан триггер, с разрешающим входом ,обычным входом и выходом.

У меня та же ситуация, только у меня 2 разрешающих входа получается, при А=8 и А=9.Я не понимаю как это описать.Что при 8 он пропускает одну часть сигналов,а при 9 другую.


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

Карма: 24
Зарегистрирован: Чт июн 10, 2010 09:55:35
Сообщений: 1779
Откуда: Сибирские Афины
Рейтинг сообщения: 0
AHDL не знаю. Посему не понимаю, что вам надо получить.
Посмотрите как сделан latch по ссылке что я дал.
Вам надо сделать присвоение значения, когда выполняется заданное условие. Когда условие не выполняется, то делать ничего не надо.

Добавил:
Т.е. вы сами не понимаете, что делает первый кусок кода!?
Так вы разберитесь, что исходный код делает! Выпишете "пути данных", условия. Схему на обычной логике нарисуйте, в крайнем случае. Чтобы вы сами поняли. А потом уже переписывайте на другом языке.

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


Вернуться наверх
 Профиль  
 
Не в сети
 Заголовок сообщения: Re: вопросы по Verilog
СообщениеДобавлено: Пт фев 01, 2013 11:48:17 
Потрогал лапой паяльник

Зарегистрирован: Чт авг 09, 2012 09:57:20
Сообщений: 370
Рейтинг сообщения: 0
да,я понимаю впринципе,что он делает. раньше писал на AHDL(не до конца изучив язык). Щас уже перехожу на Verilog(от меня это потребовали).И вот прочитал про этот триггер-защелку.

думаю будет так,пока другого ничего в голову не приходит почему-то.
Код:
reg INREG;

always @(!CS&&!WR&& A==8 or INREG[7:0])

if (!CS&&!WR&& A==8)
INREG[7:0]=DAT[7:0];

always @(!CS&&!WR&& A==9 or INREG[15:8])

if (!CS&&!WR&& A==9)
INREG[15:8]=DAT[7:0];


такой код имеет смысл?)


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

Карма: 24
Зарегистрирован: Чт июн 10, 2010 09:55:35
Сообщений: 1779
Откуда: Сибирские Афины
Рейтинг сообщения: 0
Nevox писал(а):
такой код имеет смысл?)
Ну, в общем, наверно - да. :)

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


Вернуться наверх
 Профиль  
 
Не в сети
 Заголовок сообщения: Re: вопросы по Verilog
СообщениеДобавлено: Пт фев 01, 2013 13:25:09 
Потрогал лапой паяльник

Зарегистрирован: Чт авг 09, 2012 09:57:20
Сообщений: 370
Рейтинг сообщения: 0
Error: Can't route source node "INREG[9]~98" of type max_mcell to destination node "Mux6~6" of type max_mcell
Error: Can't route source node "INREG[9]~98" of type max_mcell to destination node "INREG[9]~98" of type max_mcell
Error: Can't route source node "INREG[9]~98" of type max_mcell to destination node "INREG[9]~145" of type max_mcell
Error: Can't route source node "INREG[9]~98" of type max_mcell to destination node "WideNor0~0" of type max_mcell
Error: Can't place node "INREG[9]~145" of type max_mcell
Error: Can't find fit
Error: Quartus II Fitter was unsuccessful. 6 errors, 7 warnings
Error: Peak virtual memory: 400 megabytes
Error: Processing ended: Fri Feb 01 13:28:41 2013
Error: Elapsed time: 00:00:01
Error: Total CPU time (on all processors): 00:00:01
Error: Quartus II Full Compilation was unsuccessful. 8 errors, 38 warnings


при таком коде выдает вот такие ошибки...

это означает,что не хватает макроячеек и надо писать как-то еще хитрее и проще?


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

Карма: 24
Зарегистрирован: Чт июн 10, 2010 09:55:35
Сообщений: 1779
Откуда: Сибирские Афины
Рейтинг сообщения: 0
Чёт намудрил. Зачем INREG в always?
Код:
reg INREG;
always @(CS or WR or A or DAT)
begin
    if (!CS&&!WR&& A==8)
    INREG[7:0]=DAT[7:0];
end

always @(CS or WR or A or DAT)
begin
    if (!CS&&!WR&& A==9)
    INREG[15:8]=DAT[7:0];
end


ЗЫ: Чёт давненько я на верилоге ничего не делал. Подзабыл уже. :)

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


Вернуться наверх
 Профиль  
 
Не в сети
 Заголовок сообщения: Re: вопросы по Verilog
СообщениеДобавлено: Пт фев 01, 2013 14:35:18 
Потрогал лапой паяльник

Зарегистрирован: Чт авг 09, 2012 09:57:20
Сообщений: 370
Рейтинг сообщения: 0
а я по примеру делал)

Код:
reg q;

always @ (q or enable)
   if (enable)
      q = d;



как здесь,по аналогии и сделал...

щас попробую этот код

upd. А тоже самое пишет,та же ошибка.


Вернуться наверх
 Профиль  
 
Не в сети
 Заголовок сообщения: Re: вопросы по Verilog
СообщениеДобавлено: Пт фев 01, 2013 14:38:52 
Мудрый кот
Аватар пользователя

Карма: 24
Зарегистрирован: Чт июн 10, 2010 09:55:35
Сообщений: 1779
Откуда: Сибирские Афины
Рейтинг сообщения: 0
Для какой ПЛИС?

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


Вернуться наверх
 Профиль  
 
Не в сети
 Заголовок сообщения: Re: вопросы по Verilog
СообщениеДобавлено: Пт фев 01, 2013 14:43:26 
Потрогал лапой паяльник

Зарегистрирован: Чт авг 09, 2012 09:57:20
Сообщений: 370
Рейтинг сообщения: 0
ALTERA EMP 3064 ATC 100-10

триггеров должно хватить поидее.


Вернуться наверх
 Профиль  
 
Не в сети
 Заголовок сообщения: Re: вопросы по Verilog
СообщениеДобавлено: Пт фев 01, 2013 18:38:30 
Мудрый кот
Аватар пользователя

Карма: 24
Зарегистрирован: Чт июн 10, 2010 09:55:35
Сообщений: 1779
Откуда: Сибирские Афины
Рейтинг сообщения: 0
Nevox писал(а):
триггеров должно хватить поидее.
Макроячейки задействуются не только на регистры из "схемы", но и на выводы (pin-ы) работающие на выход. А может просто не хватить ресурсов внутренней шины на разводку между макроячейками.


Вернуться наверх
 Профиль  
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 68 ]  На страницу Пред.  1, 2, 3, 4  След.



Часовой пояс: UTC + 3 часа [ Летнее время ]


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

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


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

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


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