Forth и другие саморасширяющиеся системы программирования Locations of visitors to this page
Текущее время: Пт мар 29, 2024 02:53

...
Google Search
Forth-FAQ Spy Grafic

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




Начать новую тему Ответить на тему  [ Сообщений: 21 ]  На страницу 1, 2  След.
Автор Сообщение
 Заголовок сообщения: Вот так.
СообщениеДобавлено: Пн июл 24, 2006 00:15 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 13:19
Сообщения: 3565
Откуда: St.Petersburg
Благодарил (а): 4 раз.
Поблагодарили: 72 раз.
Поболтаем? :)

_________________
С уважением, WingLion
Forth-CPU . RuF09WE
Мой Форт
Отсутствие бана это не заслуга юзера, а недоработка модератора (с)


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Пн июл 24, 2006 00:16 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7960
Благодарил (а): 25 раз.
Поблагодарили: 144 раз.
Лехххко! :)


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Пн июл 24, 2006 00:34 
Не в сети
Moderator
Moderator
Аватара пользователя

Зарегистрирован: Чт май 04, 2006 00:53
Сообщения: 5062
Откуда: был Крым, теперь Новосибирск
Благодарил (а): 23 раз.
Поблагодарили: 63 раз.
С чего начнем?)

_________________
Мне бы только мой крошечный вклад внести,
За короткую жизнь сплести
Хотя бы ниточку шёлка.
fleur


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Пн июл 24, 2006 00:59 
Не в сети
Moderator
Moderator
Аватара пользователя

Зарегистрирован: Чт май 04, 2006 00:53
Сообщения: 5062
Откуда: был Крым, теперь Новосибирск
Благодарил (а): 23 раз.
Поблагодарили: 63 раз.
WingLion писал(а):
Например, с изучения VHDL...
Лично я его совсем не знаю...


А чем хуже AHDL?

_________________
Мне бы только мой крошечный вклад внести,
За короткую жизнь сплести
Хотя бы ниточку шёлка.
fleur


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Пн июл 24, 2006 01:10 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 13:19
Сообщения: 3565
Откуда: St.Petersburg
Благодарил (а): 4 раз.
Поблагодарили: 72 раз.
oleg писал(а):
А чем хуже AHDL?

Ну, скажем так, именно мне AHDL изучать как бы не требуется :)

_________________
С уважением, WingLion
Forth-CPU . RuF09WE
Мой Форт
Отсутствие бана это не заслуга юзера, а недоработка модератора (с)


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Пн июл 24, 2006 09:35 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7960
Благодарил (а): 25 раз.
Поблагодарили: 144 раз.
oleg писал(а):
А чем хуже AHDL?


Не хуже, просто VHDL/Verilog выразительнее.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Пн июл 24, 2006 12:41 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 13:19
Сообщения: 3565
Откуда: St.Petersburg
Благодарил (а): 4 раз.
Поблагодарили: 72 раз.
Кстати, на счет выразительности. Я когда-то пытался на VHDL что-то сделать, но ничего так и не получилось (метод "копи-паста" с чужих исходников не считается).

Вот, например, делаем самый простой элемент на AHDL:

Код:
    TITLE "invertor";

SUBDESIGN test (
    in1, in2 : INPUT;
    out : OUTPUT;
    )
BEGIN
    out = !(in1 & in2);
END;


Сохраняем в файл test.tdf, создаем проект в Квартусе и все компилится

И вот, теперь вопрос, что этому котенку надо, чтоб он полиэтилен жрал? В смысле, как это же самое на VHDL написать?

_________________
С уважением, WingLion
Forth-CPU . RuF09WE
Мой Форт
Отсутствие бана это не заслуга юзера, а недоработка модератора (с)


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Пн июл 24, 2006 12:57 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7960
Благодарил (а): 25 раз.
Поблагодарили: 144 раз.
Код:
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;

entity kotenok is
    Port ( in1 : in  STD_LOGIC;
           in2 : in  STD_LOGIC;
           kout : out  STD_LOGIC);
end kotenok;

architecture Behavioral of kotenok is

begin

kout <= not (in1 and in2);

end Behavioral;


Вот такие пирожки с котятами. :)


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Пн июл 24, 2006 13:17 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 13:19
Сообщения: 3565
Откуда: St.Petersburg
Благодарил (а): 4 раз.
Поблагодарили: 72 раз.
Та-ак... :)
Вот, что-то не кажется, что "выразительность" не сильно лучше, если не сказать наоборот.

Подключение библиотек то же, по идее, как бы автоматом надо бы, хотя, как знать. И то, что в AHDL одним блоком - SUBDESIGN () BEGIN -- END;
Тут на два блока разбиты, что в общем-то, не кажется более выразительным.

Ладно... сейчас пойду в Квартус пытаться компилить сие ушистое чудо...
А потом буду пытаться понять, как же делаются в VHDL регистры и триггеры, которые в AHDL простым объявлением делаются.

Код:
    TITLE "invertor";

SUBDESIGN test (
    in1, in2 : INPUT;
    out : OUTPUT;
    )
VARIABLE
    TT : DFF; -- объявление D-триггера
BEGIN
--    out = !(in1 & in2);  -- старое

    TT.clk = in1; TT.d = in2;

--  TT.clrn = VCC;  TT.prn = VCC; -- закоментровано,
--  потому что оно и по умолчанию так.

    out = TT;

--  другой вариант того же самого без обявления TT:
--  out = DFF(in2,in1,,);

END;

_________________
С уважением, WingLion
Forth-CPU . RuF09WE
Мой Форт
Отсутствие бана это не заслуга юзера, а недоработка модератора (с)


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Пн июл 24, 2006 13:30 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7960
Благодарил (а): 25 раз.
Поблагодарили: 144 раз.
WingLion писал(а):
Та-ак...
Вот, что-то не кажется, что "выразительность" не сильно лучше, если не сказать наоборот.

Подключение библиотек то же, по идее, как бы автоматом надо бы, хотя, как знать. И то, что в AHDL одним блоком - SUBDESIGN () BEGIN -- END;
Тут на два блока разбиты, что в общем-то, не кажется более выразительным.


VHDL ориентирован на более интенсивное использование библиотек. В данном случае я набрал вообще только одну строчку, остальное сгенерировалось автоматически, как только я начепятал названия выводов блока. Мощь библиотек проявляется на больших проектах.

Вот триггер:
Код:
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;

entity kotrigger is
    Port ( clk : in  STD_LOGIC;
           d : in  STD_LOGIC;
           q : out  STD_LOGIC);
end kotrigger;

architecture Behavioral of kotrigger is

begin

process(clk)
begin
  if clk'event and clk ='1' then
     q<=d;
  end if;
end process;

end Behavioral;


Побольше, да. Потому что поведенческое описание. Зато его достаточно легко модифицировать, добавить сброс (синхронный или асинхронный), этот же текст в architecture опишет и регистр, потому что d и q можно объявить как std_logic_vector(7 downto 0). Текста получается побольше, чем в Verilog-е, зато необходимость явно закрывать синтаксические конструкции (if - end if) делает модуль более структурированным.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Пн июл 24, 2006 13:59 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 13:19
Сообщения: 3565
Откуда: St.Petersburg
Благодарил (а): 4 раз.
Поблагодарили: 72 раз.
Вот это "побольше" просто и вылезает сразу же, когда пытаешься проект с AHDL на VHDL перевести. Как подумаешь, сколько простых строчек вида
S1 = DFF(s2,s3,,);
надо перевести в "структурированные конструкции", тут же возникает мысль "А ну его нафиг, этот VHDL, AHDL - проще!"
И это, наверняка, не только с тригерами так.

Кстати, на AHDL я могу написать вот так:

INCLUDE "test";

а потом его использовать в проекте где-нибудь...

TT = test(input_x,input_y);
____________________________
А еще и с библиотеками вопросы.
Откуда, скажем знать, какой элемент в какой либе находится?
Подключать все подряд?
Читать инструкции на нерусском языке?
Универсальной (почти на все случаи жизни) библиотеки нету...

Чего нехватает, так это книжки "VHDL для чайников".
С AHDL в этом плане как-то попроще.

_________________
С уважением, WingLion
Forth-CPU . RuF09WE
Мой Форт
Отсутствие бана это не заслуга юзера, а недоработка модератора (с)


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Пн июл 24, 2006 14:20 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7960
Благодарил (а): 25 раз.
Поблагодарили: 144 раз.
WingLion писал(а):
Вот это "побольше" просто и вылезает сразу же, когда пытаешься проект с AHDL на VHDL перевести. Как подумаешь, сколько простых строчек вида
S1 = DFF(s2,s3,,);
надо перевести в "структурированные конструкции", тут же возникает мысль "А ну его нафиг, этот VHDL, AHDL - проще!"
И это, наверняка, не только с тригерами так.


На самом деле на VHDL тоже без проблем можно подключиться к "ножкам" любого компонента. Называется component instantiation

Код:
My_trigger : FD;
port map (clk, d, q);


Другое дело, что после пятого-седьмого такого триггера я закопаюсь в объявлениях и забуду, что и куда идет. Сложные системы очень хорошо делать именно на поведенческом уровне, когда в проекте 10-15 шин по 32 бита, и между регистрами надо обеспечить большое количество связей.

WingLion писал(а):
А еще и с библиотеками вопросы.
Откуда, скажем знать, какой элемент в какой либе находится?
Подключать все подряд?
Читать инструкции на нерусском языке?
Универсальной (почти на все случаи жизни) библиотеки нету...


Можно и все подряд подключить, это же не программирование. Если что-то не требуется, в кристалле его не будет. В библиотеках могут также находиться компоненты и функции "уровня отдела" или "уровня предприятия".

WingLion писал(а):
Чего нехватает, так это книжки "VHDL для чайников".
С AHDL в этом плане как-то попроще.


http://www.books.ru/shop/books/246792
? :)


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Пн июл 24, 2006 14:53 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 13:19
Сообщения: 3565
Откуда: St.Petersburg
Благодарил (а): 4 раз.
Поблагодарили: 72 раз.
ВАУ! :)

_________________
С уважением, WingLion
Forth-CPU . RuF09WE
Мой Форт
Отсутствие бана это не заслуга юзера, а недоработка модератора (с)


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Вт июл 25, 2006 22:46 
Не в сети

Зарегистрирован: Вт июл 25, 2006 22:21
Сообщения: 1
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Для разнообразия добавлю примеры на Верилоге...

Код:
// NAND2
module test( in1, in2, out );
input in1, in2; output out;
assign out = !(in1 && in2);
endmodule

// DFF
module test( in1, in2, out );
input in1, in2; output out;
reg ff;
always@(posedge in1)begin
  ff <= in2;
end
assign out = ff;
endmodule

// DFF (одно имя для регистра и для выхода)
module test( in1, in2, out );
input in1, in2; output out;
reg out;
always@(posedge in1)begin
  out <= in2;
end
endmodule

// DFF[8]
module test( in1, in2, out );
parameter width = 8
`define WW witdh-1:0
input[WW] in1, in2; output[WW] out;
reg[WW] out;
always@(posedge in1)begin
  out <= in2;
end
endmodule

// Counter[8]
`define WW witdh-1:0
module test( clk, rst, out );
parameter width = 8
input clk; input rst; output[WW] out;
reg[WW] out;
always@(posedge clk or posedge rst)begin
  if(rst) out <= 0; // корректней 8'h00 или 8'b00000000
  else    out <= out + 1;
end
endmodule


Я сейчас на нем в основном практически работаю для Ксайлинкса... ну и иногда и по старинке на AHDL для Альтеры.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Вт июл 25, 2006 22:59 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 13:19
Сообщения: 3565
Откуда: St.Petersburg
Благодарил (а): 4 раз.
Поблагодарили: 72 раз.
А VHDL с Verilog-ом путаются...
Из-за первой буквы 'V'...

И MAX-Plus II на Verilog страшно ругается,
если его вместо VHDL подсунуть :))

_________________
С уважением, WingLion
Forth-CPU . RuF09WE
Мой Форт
Отсутствие бана это не заслуга юзера, а недоработка модератора (с)


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

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


Кто сейчас на конференции

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


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

cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
phpBB сборка от FladeX // Русская поддержка phpBB