Язык Verilog

Использование и разработка софта (преимущественно на ПЦ)

Moderator: Shaos

User avatar
fifan
Devil
Posts: 912
Joined: 06 Oct 2006 03:17
Location: г.Лянтор,Сургутского р-на,ХМАО

Re: Язык Вырвиглотк

Post by fifan »

Уважаемого Icer'а я не хотел поддевать. Я просто хотел сказать, что как-то нужно в отдельную тему всё выкладывать. От последних постов с названием темы сейчас ничего общего. Я бы например, хотел бы тоже вставить пару слов в хаяние верилога, но не могу - ниточка темы от автора пропала, теперь тема стала "положительной" ведь так досканально Icer всё описывает, неохота прерывать его.
User avatar
Icer
Senior
Posts: 163
Joined: 21 Aug 2018 07:39
Location: Кемеровская обл.

Re: Язык Вырвиглотк

Post by Icer »

fifan wrote:Уважаемого Icer'а я не хотел поддевать. Я просто хотел сказать, что как-то нужно в отдельную тему всё выкладывать.
Без обид, тема и правда переросла в личный блог. Получив помощь, я на радостях настрочил кучу постов.
fifan wrote:Я бы например, хотел бы тоже вставить пару слов в хаяние верилога, но не могу - ниточка темы от автора пропала, теперь тема стала "положительной" ведь так досканально Icer всё описывает, неохота прерывать его.
Настолько положительной, что хаять не хочется? :mrgreen: Досконально описывать плохо? Видать не все так плохо у верилога, раз десяток постов сместили чашу весов.
И все же уважаемый fifan, прошу вставте пару слов, подлейте масла в огонь. (без сарказма)
User avatar
Lavr
Supreme God
Posts: 16689
Joined: 21 Oct 2009 08:08
Location: Россия

Re: Язык Вырвиглотк

Post by Lavr »

Джентльмены! Да всё нормально! Всё по теме, но так всегда бывает с различными языками:
кому-то одни нравятся больше, другие - меньше.
И позитивные и негативные отзывы в топике "Язык Verilog" вполне уместны. Сам топикстартер
пока тоже возражений и дополнений не высказывает...
iLavr
User avatar
fifan
Devil
Posts: 912
Joined: 06 Oct 2006 03:17
Location: г.Лянтор,Сургутского р-на,ХМАО

Re: Язык Вырвиглотк

Post by fifan »

Тады так скажу. Верилог меня отпугивает своей не понятностью в синтаксисе. Хотя это наверное лень - необходимо просто внимательно почитать мануал. Я посмотрю книжку как она называется и обрадую, наверное Lavr'а (он любит книжки коллекционировать). Возможно эта книга известная. По ней можно привести синтаксис и сравнение одних и тех же действий.

Если необходимо, то лично для меня можно вникнуть в верилог. Но это требует какого-то лишнего напряга мозгов.

Ещё многое зависит от "красоты" написания кода. Я пишу так: каждую процедуру, описание переменных, подключаемых модулей стараюсь отделить пустыми строками. Каждое новое условие (if, else) начинаю с новой строки со смещением табуляцией (лесенкой вправо). Присвоение переменных - в каждой строке новая переменная.
Например, с этой темы:
wire [13:0] ram_a, cpu_a, vpu_a;

я бы написал так:
wire [13:0] ram_a;
wire cpu_a;
wire vpu_a;

Кстати я не написал чем я пользуюсь. Конечно vhdl. Для меня описание переменных на нём выглядит намного "красочнее":
signal ram_a : std_logic_vector (13 downto 0);--
signal cpu_a : std_logic; --
signal vpu_a : std_logic; --
Ни тебе "провод" (wire), ни присловутое assign.
User avatar
Lavr
Supreme God
Posts: 16689
Joined: 21 Oct 2009 08:08
Location: Россия

Re: Язык Вырвиглотк

Post by Lavr »

fifan wrote:Я посмотрю книжку как она называется и обрадую, наверное Lavr'а (он любит книжки коллекционировать).
Я книги люблю почитать, если они полезные, а вот "книжки коллекционировать" - это не моё.
Но если уж коснулись книг, как то так выходит, что книги ранних изданий по микропроцесорной
тематике более полезны в практическом плане, чем выходящие сегодня.

Так смотришь, написано-то всё вроде правильно, а практически - никакой пользы. :-?
Я такие книги называю "сказочные" :wink: и пропускаю мимо. А книги полезные
обычно отмечаю ссылкой в нашей "библиотеке".
iLavr
User avatar
Icer
Senior
Posts: 163
Joined: 21 Aug 2018 07:39
Location: Кемеровская обл.

Re: Язык Вырвиглотк

Post by Icer »

Code: Select all

wire [13:0] ram_a, cpu_a, vpu_a;
три однотипных массива проводов в вашем исполнении выглядели бы так:

Code: Select all

signal ram_a : std_logic_vector (13 downto 0);--
signal cpu_a : std_logic_vector (13 downto 0);--
signal vpu_a : std_logic_vector (13 downto 0);--
wire против std_logic_vector
[13:0] vs (13 downto 0)
слегка громоздко, но я не на что не претендую :mrgreen:
с vhdl пока даже не пытался разбираться, может чего и напутал.

Как бы вы на vhdl реализовали арбитраж между адресными шинами cpu vpu и ram?
User avatar
Shaos
Admin
Posts: 24083
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Язык Вырвиглотк

Post by Shaos »

Начал играться с верилятором (поставляется в составе стандартной библиотеки программ для дебиана), который способен компилировать модуль на языке "вырвиглотк" в C++ представление, которое затем можно вкомпилировать в свою C++ программу, меняющую входы и печатающую выходы с использованием Verilator API - пример вокруг сгенерённого из RGB_LED_BLINK.v:

Code: Select all

// RGB.cpp
#include "VRGB_LED_BLINK.h"
#include "verilated.h"
#include <iostream>

int main(int argc, char** argv, char** env)
{
  Verilated::commandArgs(argc,argv);

  int i = 0;

  VRGB_LED_BLINK* top = new VRGB_LED_BLINK();
  while(!Verilated::gotFinish())
  {

     top->myclk = (i&2)?1:0; // change input

          top->eval();

     cout << i++ << ":" << (int)top->myclk << ":" << (int)top->tmp << endl; // print input myclk and output tmp
  }
  delete top;
  exit(0);
}
шаги по сборке:
verilator -Wall --cc RGB_LED_BLINK.v --exe RGB.cpp
создаёт каталог obj_dir где находятся h, cpp и mk файлы, далее
make -j -C obj_dir -f VRGB_LED_BLINK.mk
и после этого можно зайти в obj_dir и запустить VRGB_LED_BLINK на исполнение...

P.S. документация: https://www.veripool.org/projects/verilator/wiki/Documentation
Я тут за главного - если что шлите мыло на me собака shaos точка net