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

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

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

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

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

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

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;

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

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

 

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

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

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

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

 

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

 

Из приличных мест, которые мы нагуглили и посетили — это «Дорогая, буду поздно» и «Манеки», причем последнее на уровне 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