Язык Verilog
Moderator: Shaos
-
- Devil
- Posts: 912
- Joined: 06 Oct 2006 03:17
- Location: г.Лянтор,Сургутского р-на,ХМАО
Re: Язык Вырвиглотк
Уважаемого Icer'а я не хотел поддевать. Я просто хотел сказать, что как-то нужно в отдельную тему всё выкладывать. От последних постов с названием темы сейчас ничего общего. Я бы например, хотел бы тоже вставить пару слов в хаяние верилога, но не могу - ниточка темы от автора пропала, теперь тема стала "положительной" ведь так досканально Icer всё описывает, неохота прерывать его.
-
- Senior
- Posts: 163
- Joined: 21 Aug 2018 07:39
- Location: Кемеровская обл.
Re: Язык Вырвиглотк
Без обид, тема и правда переросла в личный блог. Получив помощь, я на радостях настрочил кучу постов.fifan wrote:Уважаемого Icer'а я не хотел поддевать. Я просто хотел сказать, что как-то нужно в отдельную тему всё выкладывать.
Настолько положительной, что хаять не хочется?fifan wrote:Я бы например, хотел бы тоже вставить пару слов в хаяние верилога, но не могу - ниточка темы от автора пропала, теперь тема стала "положительной" ведь так досканально Icer всё описывает, неохота прерывать его.

И все же уважаемый fifan, прошу вставте пару слов, подлейте масла в огонь. (без сарказма)
-
- Supreme God
- Posts: 16689
- Joined: 21 Oct 2009 08:08
- Location: Россия
Re: Язык Вырвиглотк
Джентльмены! Да всё нормально! Всё по теме, но так всегда бывает с различными языками:
кому-то одни нравятся больше, другие - меньше.
И позитивные и негативные отзывы в топике "Язык Verilog" вполне уместны. Сам топикстартер
пока тоже возражений и дополнений не высказывает...
кому-то одни нравятся больше, другие - меньше.
И позитивные и негативные отзывы в топике "Язык Verilog" вполне уместны. Сам топикстартер
пока тоже возражений и дополнений не высказывает...
iLavr
-
- Devil
- Posts: 912
- Joined: 06 Oct 2006 03:17
- Location: г.Лянтор,Сургутского р-на,ХМАО
Re: Язык Вырвиглотк
Тады так скажу. Верилог меня отпугивает своей не понятностью в синтаксисе. Хотя это наверное лень - необходимо просто внимательно почитать мануал. Я посмотрю книжку как она называется и обрадую, наверное 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.
Если необходимо, то лично для меня можно вникнуть в верилог. Но это требует какого-то лишнего напряга мозгов.
Ещё многое зависит от "красоты" написания кода. Я пишу так: каждую процедуру, описание переменных, подключаемых модулей стараюсь отделить пустыми строками. Каждое новое условие (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.
-
- Supreme God
- Posts: 16689
- Joined: 21 Oct 2009 08:08
- Location: Россия
Re: Язык Вырвиглотк
Я книги люблю почитать, если они полезные, а вот "книжки коллекционировать" - это не моё.fifan wrote:Я посмотрю книжку как она называется и обрадую, наверное Lavr'а (он любит книжки коллекционировать).
Но если уж коснулись книг, как то так выходит, что книги ранних изданий по микропроцесорной
тематике более полезны в практическом плане, чем выходящие сегодня.
Так смотришь, написано-то всё вроде правильно, а практически - никакой пользы.

Я такие книги называю "сказочные"

обычно отмечаю ссылкой в нашей "библиотеке".
iLavr
-
- Senior
- Posts: 163
- Joined: 21 Aug 2018 07:39
- Location: Кемеровская обл.
Re: Язык Вырвиглотк
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);--
[13:0] vs (13 downto 0)
слегка громоздко, но я не на что не претендую

с vhdl пока даже не пытался разбираться, может чего и напутал.
Как бы вы на vhdl реализовали арбитраж между адресными шинами cpu vpu и ram?
-
- Admin
- Posts: 24083
- Joined: 08 Jan 2003 23:22
- Location: Silicon Valley
Re: Язык Вырвиглотк
Начал играться с верилятором (поставляется в составе стандартной библиотеки программ для дебиана), который способен компилировать модуль на языке "вырвиглотк" в C++ представление, которое затем можно вкомпилировать в свою C++ программу, меняющую входы и печатающую выходы с использованием Verilator API - пример вокруг сгенерённого из RGB_LED_BLINK.v:
шаги по сборке:
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
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