Автор |
Сообщение |
|
|
Заголовок сообщения: |
|
|
|
WingLion писал(а): Авторские экземпляры то прислали? Сам за ними ползал И разлетелись в момент, всем коллегам раздарил. WingLion писал(а): Ну, в крайнем случае наймем сыщика из УгРозыска
Все, понял, сам в Питер приеду!
[quote="WingLion"]Авторские экземпляры то прислали? [/quote]
Сам за ними ползал :) И разлетелись в момент, всем коллегам раздарил.
[quote="WingLion"]Ну, в крайнем случае наймем сыщика из УгРозыска [/quote]
Все, понял, сам в Питер приеду! :))
|
|
|
|
Добавлено: Ср июл 26, 2006 17:54 |
|
|
|
|
|
Заголовок сообщения: |
|
|
|
Хищник писал(а): А я про нее только слышу - что где-то была.... Looool Но 195 - это они ввалили. 150 - нормально, с учетом отпускной цены издательства и накруток. Авторские экземпляры то прислали? Я когда цену увидел, думал не заказать ли книгу на Озоне. там она 159р. Но, посчитав, что на почтовые расходы они полтинник накинут, решил, лучше брать сразу, раз возможность есть. Но теперь буду знать, что в этом магазине книги дороже чем в интернете. Хищник писал(а): (/me испугался и думает, чем его будут ловить) Smile
Ну, в крайнем случае наймем сыщика из УгРозыска
[quote="Хищник"]А я про нее только слышу - что где-то была.... Looool Но 195 - это они ввалили. 150 - нормально, с учетом отпускной цены издательства и накруток. [/quote] Авторские экземпляры то прислали? :) Я когда цену увидел, думал не заказать ли книгу на Озоне. там она 159р. Но, посчитав, что на почтовые расходы они полтинник накинут, решил, лучше брать сразу, раз возможность есть. :) Но теперь буду знать, что в этом магазине книги дороже чем в интернете.
[quote="Хищник"] (/me испугался и думает, чем его будут ловить) Smile[/quote]
Ну, в крайнем случае наймем сыщика из УгРозыска :))
|
|
|
|
Добавлено: Ср июл 26, 2006 17:50 |
|
|
|
|
|
Заголовок сообщения: |
|
|
|
WingLion писал(а): Только что вернулся из города. В "Технической Книге", на Пушкинской (СПб) - книга есть - 195р А я про нее только слышу - что где-то была.... Но 195 - это они ввалили. 150 - нормально, с учетом отпускной цены издательства и накруток. WingLion писал(а): П.С. Так что, теперь будем ловить Хищника на предмет автографа
(/me испугался и думает, чем его будут ловить)
[quote="WingLion"]Только что вернулся из города. В "Технической Книге", на Пушкинской (СПб) - книга есть - 195р [/quote]
А я про нее только [b]слышу[/b] - что где-то была.... :)) Но 195 - это они ввалили. 150 - нормально, с учетом отпускной цены издательства и накруток.
[quote="WingLion"]П.С. Так что, теперь будем ловить Хищника на предмет автографа [/quote]
(/me испугался и думает, чем его будут ловить) :)
|
|
|
|
Добавлено: Ср июл 26, 2006 17:37 |
|
|
|
|
|
Заголовок сообщения: |
|
|
|
Хищник писал(а): http://www.books.ru/shop/books/246792 ? Smile
Только что вернулся из города.
В "Технической Книге", на Пушкинской (СПб) - книга есть - 195р
П.С. Так что, теперь будем ловить Хищника на предмет автографа
[quote="Хищник"]http://www.books.ru/shop/books/246792 ? Smile[/quote]
Только что вернулся из города.
В "Технической Книге", на Пушкинской (СПб) - книга есть - 195р :)
П.С. Так что, теперь будем ловить Хищника на предмет автографа :))
|
|
|
|
Добавлено: Ср июл 26, 2006 17:05 |
|
|
|
|
|
Заголовок сообщения: |
|
|
|
Да та же ситуация, что и с языками программирования. Какой там самый лучший? В HDL есть своеобразный мейнстрим - VHDL и Verilog. Они практически эквивалентны, и переход на другой язык сам по себе не означает, что схема будет меньше по размеру или быстрее. Еще есть разнообразные "аппаратные Си" - системы на базе Си, преобразующие последовательность операторов в состояния конечного автомата. Ну и никто не мешает изготавливать собственные генераторы шаблонов или параметризованных описаний, тут уж какой входной язык удобнее. А про эффективность не имеет смысла говорить в отрыве от элементной базы. Можно всякого наворотить, в том числе и такого, что в редакторе смотрится очень красиво, а в кремнии - ужасно.
Да та же ситуация, что и с языками программирования. Какой там самый лучший? В HDL есть своеобразный мейнстрим - VHDL и Verilog. Они практически эквивалентны, и переход на другой язык сам по себе не означает, что схема будет меньше по размеру или быстрее. Еще есть разнообразные "аппаратные Си" - системы на базе Си, преобразующие последовательность операторов в состояния конечного автомата. Ну и никто не мешает изготавливать собственные генераторы шаблонов или параметризованных описаний, тут уж какой входной язык удобнее. А про эффективность не имеет смысла говорить в отрыве от элементной базы. Можно всякого наворотить, в том числе и такого, что в редакторе смотрится очень красиво, а в кремнии - ужасно.
|
|
|
|
Добавлено: Ср июл 26, 2006 00:46 |
|
|
|
|
|
Заголовок сообщения: |
|
|
|
Кстати, какой из hdl самый перспективный?
А какой самый эффективный?
Кстати, какой из hdl самый перспективный?
А какой самый эффективный?
|
|
|
|
Добавлено: Ср июл 26, 2006 00:40 |
|
|
|
|
|
Заголовок сообщения: |
|
|
|
А VHDL с Verilog-ом путаются...
Из-за первой буквы 'V'...
И MAX-Plus II на Verilog страшно ругается,
если его вместо VHDL подсунуть
А VHDL с Verilog-ом путаются...
Из-за первой буквы 'V'...
И MAX-Plus II на Verilog страшно ругается,
если его вместо VHDL подсунуть :))
|
|
|
|
Добавлено: Вт июл 25, 2006 22:59 |
|
|
|
|
|
Заголовок сообщения: |
|
|
|
Для разнообразия добавлю примеры на Верилоге...
Код: // 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 для Альтеры.
Для разнообразия добавлю примеры на Верилоге...
[code]// 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[/code]
Я сейчас на нем в основном практически работаю для Ксайлинкса... ну и иногда и по старинке на AHDL для Альтеры.
|
|
|
|
Добавлено: Вт июл 25, 2006 22:46 |
|
|
|
|
|
Заголовок сообщения: |
|
|
|
ВАУ!
ВАУ! :)
|
|
|
|
Добавлено: Пн июл 24, 2006 14:53 |
|
|
|
|
|
Заголовок сообщения: |
|
|
|
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
?
[quote="WingLion"]Вот это "побольше" просто и вылезает сразу же, когда пытаешься проект с AHDL на VHDL перевести. Как подумаешь, сколько простых строчек вида S1 = DFF(s2,s3,,); надо перевести в "структурированные конструкции", тут же возникает мысль "А ну его нафиг, этот VHDL, AHDL - проще!" И это, наверняка, не только с тригерами так. [/quote]
На самом деле на VHDL тоже без проблем можно подключиться к "ножкам" любого компонента. Называется component instantiation
[code]My_trigger : FD; port map (clk, d, q);[/code]
Другое дело, что после пятого-седьмого такого триггера я закопаюсь в объявлениях и забуду, что и куда идет. Сложные системы очень хорошо делать именно на поведенческом уровне, когда в проекте 10-15 шин по 32 бита, и между регистрами надо обеспечить большое количество связей.
[quote="WingLion"]А еще и с библиотеками вопросы. Откуда, скажем знать, какой элемент в какой либе находится? Подключать все подряд? Читать инструкции на нерусском языке? Универсальной (почти на все случаи жизни) библиотеки нету... [/quote]
Можно и все подряд подключить, это же не программирование. Если что-то не требуется, в кристалле его не будет. В библиотеках могут также находиться компоненты и функции "уровня отдела" или "уровня предприятия".
[quote="WingLion"]Чего нехватает, так это книжки "VHDL для чайников". С AHDL в этом плане как-то попроще.[/quote]
http://www.books.ru/shop/books/246792
? :)
|
|
|
|
Добавлено: Пн июл 24, 2006 14:20 |
|
|
|
|
|
Заголовок сообщения: |
|
|
|
Вот это "побольше" просто и вылезает сразу же, когда пытаешься проект с AHDL на VHDL перевести. Как подумаешь, сколько простых строчек вида
S1 = DFF(s2,s3,,);
надо перевести в "структурированные конструкции", тут же возникает мысль "А ну его нафиг, этот VHDL, AHDL - проще!"
И это, наверняка, не только с тригерами так.
Кстати, на AHDL я могу написать вот так:
INCLUDE "test";
а потом его использовать в проекте где-нибудь...
TT = test(input_x,input_y);
____________________________
А еще и с библиотеками вопросы.
Откуда, скажем знать, какой элемент в какой либе находится?
Подключать все подряд?
Читать инструкции на нерусском языке?
Универсальной (почти на все случаи жизни) библиотеки нету...
Чего нехватает, так это книжки "VHDL для чайников".
С AHDL в этом плане как-то попроще.
Вот это "побольше" просто и вылезает сразу же, когда пытаешься проект с AHDL на VHDL перевести. Как подумаешь, сколько простых строчек вида
S1 = DFF(s2,s3,,);
надо перевести в "структурированные конструкции", тут же возникает мысль "А ну его нафиг, этот VHDL, AHDL - проще!"
И это, наверняка, не только с тригерами так.
Кстати, на AHDL я могу написать вот так:
INCLUDE "test";
а потом его использовать в проекте где-нибудь...
TT = test(input_x,input_y);
____________________________
А еще и с библиотеками вопросы.
Откуда, скажем знать, какой элемент в какой либе находится?
Подключать все подряд?
Читать инструкции на нерусском языке?
Универсальной (почти на все случаи жизни) библиотеки нету...
Чего нехватает, так это книжки "VHDL для чайников".
С AHDL в этом плане как-то попроще.
|
|
|
|
Добавлено: Пн июл 24, 2006 13:59 |
|
|
|
|
|
Заголовок сообщения: |
|
|
|
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) делает модуль более структурированным.
[quote="WingLion"]Та-ак... Вот, что-то не кажется, что "выразительность" не сильно лучше, если не сказать наоборот.
Подключение библиотек то же, по идее, как бы автоматом надо бы, хотя, как знать. И то, что в AHDL одним блоком - SUBDESIGN () BEGIN -- END; Тут на два блока разбиты, что в общем-то, не кажется более выразительным. [/quote]
VHDL ориентирован на более интенсивное использование библиотек. В данном случае я набрал вообще только одну строчку, остальное сгенерировалось автоматически, как только я начепятал названия выводов блока. Мощь библиотек проявляется на больших проектах.
Вот триггер:
[code] 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;[/code]
Побольше, да. Потому что поведенческое описание. Зато его достаточно легко модифицировать, добавить сброс (синхронный или асинхронный), этот же текст в architecture опишет и регистр, потому что d и q можно объявить как std_logic_vector(7 downto 0). Текста получается побольше, чем в Verilog-е, зато необходимость явно закрывать синтаксические конструкции (if - end if) делает модуль более структурированным.
|
|
|
|
Добавлено: Пн июл 24, 2006 13:30 |
|
|
|
|
|
Заголовок сообщения: |
|
|
|
Та-ак...
Вот, что-то не кажется, что "выразительность" не сильно лучше, если не сказать наоборот.
Подключение библиотек то же, по идее, как бы автоматом надо бы, хотя, как знать. И то, что в 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;
Та-ак... :)
Вот, что-то не кажется, что "выразительность" не сильно лучше, если не сказать наоборот.
Подключение библиотек то же, по идее, как бы автоматом надо бы, хотя, как знать. И то, что в AHDL одним блоком - SUBDESIGN () BEGIN -- END;
Тут на два блока разбиты, что в общем-то, не кажется более выразительным.
Ладно... сейчас пойду в Квартус пытаться компилить сие ушистое чудо...
А потом буду пытаться понять, как же делаются в VHDL регистры и триггеры, которые в AHDL простым объявлением делаются.
[code] 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; [/code]
|
|
|
|
Добавлено: Пн июл 24, 2006 13:17 |
|
|
|
|
|
Заголовок сообщения: |
|
|
|
Код: 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;
Вот такие пирожки с котятами.
[code]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; [/code]
Вот такие пирожки с котятами. :)
|
|
|
|
Добавлено: Пн июл 24, 2006 12:57 |
|
|
|
|
|
Заголовок сообщения: |
|
|
|
Кстати, на счет выразительности. Я когда-то пытался на VHDL что-то сделать, но ничего так и не получилось (метод "копи-паста" с чужих исходников не считается).
Вот, например, делаем самый простой элемент на AHDL:
Код: TITLE "invertor";
SUBDESIGN test ( in1, in2 : INPUT; out : OUTPUT; ) BEGIN out = !(in1 & in2); END;
Сохраняем в файл test.tdf, создаем проект в Квартусе и все компилится
И вот, теперь вопрос, что этому котенку надо, чтоб он полиэтилен жрал? В смысле, как это же самое на VHDL написать?
Кстати, на счет выразительности. Я когда-то пытался на VHDL что-то сделать, но ничего так и не получилось (метод "копи-паста" с чужих исходников не считается).
Вот, например, делаем самый простой элемент на AHDL:
[code] TITLE "invertor";
SUBDESIGN test ( in1, in2 : INPUT; out : OUTPUT; ) BEGIN out = !(in1 & in2); END; [/code]
Сохраняем в файл test.tdf, создаем проект в Квартусе и все компилится
И вот, теперь вопрос, что этому котенку надо, чтоб он полиэтилен жрал? В смысле, как это же самое на VHDL написать?
|
|
|
|
Добавлено: Пн июл 24, 2006 12:41 |
|
|
|
|