Вызов модуля в Verilog и VHDL

Здесь я не пытаюсь убедить всех о лаконичности использования Verilog в HDL-разработке, на мой взгляд, VHDL довольно хорош, но иногда его использовать довольно геморно, особенно если нужно быстро накидать какую-то простую логику.

В качестве примера рассмотрим ситуацию, когда у нас один модуль (bench) использует второй (top), у которого 2 выходных порта.

Один из портов (С) — клок, второй — 12-битная шина данных (h). Внутри модуля объявлены параметры, которые являются условиями для присваивания значения выходному порту.

Рассмотрим как это реализовано на Verilog:

[php]
module top ( C, h );
output [ 0:0] C;
output [11:0] h;
reg [ 0:0] C;
reg [11:0] h;
reg [21:0] l;

parameter kh = 3;
parameter kl = 21’d364066;
parameter wl = 21’h100000;

initial #5
begin
C <= 0;
l <= 0;
h <= 0;
end
always #10 C = ~C;
always @(posedge C)
begin if ( l >= wl )
begin l <= l + kl — wl;
h <= h + kh + 1;
end else
begin l <= l + kl;
h <= h + kh;
end
end

endmodule

module bench;
wire [ 0:0] clock;
wire [11:0] h;
top dut ( .C(clock), .h(h) );
initial #85
begin
if ( h == 13 ) begin
$display ( "%d", h );
$display ("PASSED");
end else begin
$display ( "%d = FAIL", h );
end
$finish;
end

endmodule
[/php]

Тот же самый пример, но на VHDL :

[php]
library ieee;
use ieee.std_logic_1164.all;
use ieee.numeric_std.all;

entity bench is
end entity;

architecture from_verilog of bench is
signal clock : std_logic;
signal h : unsigned(11 downto 0);

component top is
port (
C : out std_logic;
h : out unsigned(11 downto 0)
);
end component;
begin

dut: top
port map (
C => clock,
h => h
);

process is
begin
wait for 85 ms;
if Resize(h, 32) = X"0000000d" then
report "" & integer’image(To_Integer(h));
report "PASSED";
else
report "" & integer’image(To_Integer(h)) & " = FAIL";
end if;
report "SIMULATION FINISHED" severity failure;
wait;
end process;
end architecture;

library ieee;
use ieee.std_logic_1164.all;
use ieee.numeric_std.all;

entity top is
port (
C : out std_logic;
h : out unsigned(11 downto 0)
);
end entity;

architecture from_verilog of top is
signal C_Reg : std_logic;
signal h_Reg : unsigned(11 downto 0);
signal l : unsigned(21 downto 0) := "0000000000000000000000";
begin
C <= C_Reg;
h <= h_Reg;

process is
begin
wait for 5 ms;
C_Reg <= ‘0’;
h_Reg <= X"000";
wait;
end process;

process is
begin
wait for 10 ms;
C_Reg <= not C_Reg;
end process;

process (C_Reg) is
begin if rising_edge(C_Reg) then
if l >= "0100000000000000000000" then
l <= l — "0010100111000111011110";
h_Reg <= Resize(Resize(h_Reg, 32) + X"00000004", 12);
else
l <= l + "0001011000111000100010";
h_Reg <= Resize(Resize(h_Reg, 32) + X"00000003", 12);
end if;
end if;
end process;
end architecture;
[/php]

Для решения задачи потребовалось в два раза больше строк кода и еще больше символов…

Майская Кострома

Из местного колорита — отвратительные дороги, низкие цены в ресторанах (хороших, ясное дело, не так много) и какой-то неописуемый провинциальный «дух».

 

Стоит ли ехать сюда? Однозначно да — если едете большой веселой компанией, если не такой уж и большой и веселой — то стоит подумать.

Из плюсов : Кострома — провинциальный город, который располагается не так уж далеко от Москвы. Неплохая набережная Волги, где, при хорошей погоде, можно отлично отдохнуть. Простые, приветливые люди, тихие, размеренные ритмы жизни и близкое расположение ко всем «ключевым» достопримечательностям.

Из особенностей — на пешеходных переходах, даже при красном сигнале светофора водители продолжают ехать… Ну не п***ы ли?

Из минусов : Дороги — полное гавно, едешь и  как на американских горках «аааа», «ууууу», «ееееб….». Но местные скажут, что колорит и «раньше было хуже».

 

Если вы едете в Кострому и думаете порадовать себя трапезой в хорошем месте, хотите насладиться невероятными видами, познакомиться с симпатичными девушками — забудьте. Ничего такого вы здесь не найдете…

 

Из приличных мест, которые мы нагуглили и посетили — это «Дорогая, буду поздно» и «Манеки», причем последнее на уровне 3+.  И там, и там можно наесться и уйти пьяненьким за 1000р. В «Дорогая…» подают бургеры и мясные блюда + крафтовые сорта пива,  «Манеки» — азиатская кухня(японская, корейская) и упор на коктейли.  Остальные точки мы не стали посещать ввиду их внешнего вида. Из мест, куда можно пойти набравшись — это «Икра» и «Полигон». В первое место мы приехали из «Дорогая…» и оно было почему-то закрыто, поехали во второе. Тут впускают в спортивных штанах, да хоть в чем хочешь приходи, хоть и запрещено — впустят. Дело в том, что договориться с охранником на входе не составляет труда. Цены в данном ночном клубе как в магазине… Литруху водки можно купить за 300р (цены на 2017 год), пиво — 75-80р. Цены на коктейли не смотрел, но думаю их там лучше и не брать.

Касательно развлечений — по роже тут можно отгрести моментально. За танцполом располагается курилка, при входе в которую до тебя уже пытаются докапаться «а ты че? че тут забыл?»… Договориться тут можно, но в целом как повезет, наверное. Музыка на самом танцполе — зажигательная, при градусе чувствуешь себя ну очень русским … ставят до боли знакомые треки русской поп-сцены 90-ых, 2000-ых годов.

Достропримечательности

Приятно побывать в теплый день в «Костромской слободе» на территории которой расположился музей деревянного зодчества. Красиво — рядом Евпатьевский монастырь, зелено вокруг, ходишь, смотришь как раньше избы строили и как в них жили… хочешь — лодку возьми, покатайся, хочешь — из лука стреляй, а если что — так нормальная тема просто поваляться под солнышком на травке. Стоимость билета для взрослого — 150р.

«Дом городского первого головы Г.Н.Ботникова». Здесь довольно интерактивненько и интересно ведут экскурсии. В доме много дворянской утвари и антикварных вещей. Расскажут как дворяне и знать ими пользовались, причем, что классно все в хорошем состоянии и выглядит дорого, богато 🙂 . Еще в центре зала сделана экспозиция — раскопан фундамент здания, который был заложен до постройки дома и датируется 16-17 веком. Стоимость билета для взрослого — 150р.

 

Евпатевский мужской монастырь — монастырь как монастырь, ничего особенного… Бесплатно

2017-04-30 16-51-10

Торговые ряды в центре города — будете в Костроме, будете постоянно рядом с ними тусоваться, так как они находятся в центре города. Выглядят неплохо, но суперски сфоткать их у меня не получилось. Бесплатно

2017-04-29 14-53-52

Чтобы изучить город и побывать в злачных местах хватит 2 дней…

Оценка : 3 из 5