Кстати тема то названа неверно - нет микросхемы cyclon 3, видимо имелось ввиду Stratix III (т.к. идет сравнение с Virtex 5, а это схемы одного уровня), а Cyclon соответсвует Spartan.
Вид для печати
Кстати тема то названа неверно - нет микросхемы cyclon 3, видимо имелось ввиду Stratix III (т.к. идет сравнение с Virtex 5, а это схемы одного уровня), а Cyclon соответсвует Spartan.
Есть, есть. Уже анонсировано, указано время выхода в продажу (какой-то квартал 7 года), , цены ориентировочные (только я не понял насчет этих цен: как хочешь считай то ло 2000 баксов за 1000 штук, то ли при партии от 1000 штук 2 бакса за штуку).
Я когда давал линк на альтеровском фтп, то указывал вот этот файл: 61_quartus_windows.exe его мне и качнули. Я так решил, что Web-edition назывется 61_quartus_free.exe , тоже не маленький, 400 метров. А что такое 61_quartus_programmer.exe (50 метров) я вообще не понял. Заставка была вроде бы та же, но я продолжать не стал установку.
По 2000$ за штуку при партиях от 1000 штук
поштчно может и все 3000$
Вот теперь окончательно понятно. Золотые прямо. Но я думаю, эти цены не навсегда. Вспомнить, сколько 1Гб флэшка стоила год назад (~1000 уе), и сколько сейчас стоит 4Гб (~100 уе). Наделают побольше, подешевеет поди. Я вообще целюсь влезть если не в циклон2, то хотя бы в стратикс. Они тоже дороговаты пока, правда. Но если ничего не делать, то и ничего не будет к тому моменту, как они подешевеют.Цитата:
Сообщение от heroy
Так я вэб-эдишн качнул (в смысле не я а мне) или полную версию? Как узнать-то? :v2_crazy:
Такс, я щас качнул какой-то док по System Verilog, стандарта 2001 мне не хватат. Кто-нить по-быстрому может сказать, как вот такое в цикл `for впихнуть (если это вообще можно):
Мне так долгонько рисвать все эти вызовы модулей придется, если без `for, да и ошибок боюсь добавится.Код:module OperRegQueue_step1(clk, reset, in_free_flgs, in_empty_triads,
out_reset_flgs, out_nums, out_write);
input clk, reset;
input [63:0] in_free_flgs;
input [2:0] in_empty_triads [15:0];
output [63:0] out_reset_flgs;
output [5:0] out_nums [2:0] [15:0];
output [2:0] out_write [15:0];
reg [63:0] free_flags;
OperRegQueue_mux1 mux0( clk, in_free_flgs[3:0], 4'd0, in_empty_triads[0],
out_write[0], out_nums[0][0], out_nums[1][0], out_nums[2][0], out_reset_flgs[3:0] );
OperRegQueue_mux1 mux1( clk, in_free_flgs[7:4], 4'd1, in_empty_triads[1],
out_write[1], out_nums[0][1], out_nums[1][1], out_nums[2][1], out_reset_flgs[7:4] );
OperRegQueue_mux1 mux2( clk, in_free_flgs[11:8], 4'd2, in_empty_triads[2],
out_write[2], out_nums[0][2], out_nums[1][2], out_nums[2][2], out_reset_flgs[11:8] );
OperRegQueue_mux1 mux3( clk, in_free_flgs[15:12], 4'd3, in_empty_triads[3],
out_write[3], out_nums[0][3], out_nums[1][3], out_nums[2][3], out_reset_flgs[15:12] );
OperRegQueue_mux1 mux4( clk, in_free_flgs[19:16], 4'd4, in_empty_triads[4],
out_write[4], out_nums[0][4], out_nums[1][4], out_nums[2][4], out_reset_flgs[19:16] );
OperRegQueue_mux1 mux5( clk, in_free_flgs[23:20], 4'd5, in_empty_triads[5],
out_write[5], out_nums[0][5], out_nums[1][5], out_nums[2][5], out_reset_flgs[23:20] );
OperRegQueue_mux1 mux6( clk, in_free_flgs[27:24], 4'd6, in_empty_triads[6],
out_write[6], out_nums[0][6], out_nums[1][6], out_nums[2][6], out_reset_flgs[27:24] );
OperRegQueue_mux1 mux7( clk, in_free_flgs[31:28], 4'd7, in_empty_triads[7],
out_write[7], out_nums[0][7], out_nums[1][7], out_nums[2][7], out_reset_flgs[31:28] );
OperRegQueue_mux1 mux8( clk, in_free_flgs[35:32], 4'd8, in_empty_triads[8],
out_write[8], out_nums[0][8], out_nums[1][8], out_nums[2][8], out_reset_flgs[35:32] );
OperRegQueue_mux1 mux9( clk, in_free_flgs[39:36], 4'd9, in_empty_triads[9],
out_write[9], out_nums[0][9], out_nums[1][9], out_nums[2][9], out_reset_flgs[39:36] );
OperRegQueue_mux1 mux10( clk, in_free_flgs[43:40], 4'd10, in_empty_triads[10],
out_write[10], out_nums[0][10], out_nums[1][10], out_nums[2][10], out_reset_flgs[43:40] );
OperRegQueue_mux1 mux11( clk, in_free_flgs[47:44], 4'd11, in_empty_triads[11],
out_write[11], out_nums[0][11], out_nums[1][11], out_nums[2][11], out_reset_flgs[47:44] );
OperRegQueue_mux1 mux12( clk, in_free_flgs[51:48], 4'd12, in_empty_triads[12],
out_write[12], out_nums[0][12], out_nums[1][12], out_nums[2][12], out_reset_flgs[51:48] );
OperRegQueue_mux1 mux13( clk, in_free_flgs[55:52], 4'd13, in_empty_triads[13],
out_write[13], out_nums[0][13], out_nums[1][13], out_nums[2][13], out_reset_flgs[55:52] );
OperRegQueue_mux1 mux14( clk, in_free_flgs[59:56], 4'd14, in_empty_triads[14],
out_write[14], out_nums[0][14], out_nums[1][14], out_nums[2][14], out_reset_flgs[59:56] );
OperRegQueue_mux1 mux15( clk, in_free_flgs[63:60], 4'd15, in_empty_triads[15],
out_write[15], out_nums[0][15], out_nums[1][15], out_nums[2][15], out_reset_flgs[63:60] );
always @(posedge clk)
if (reset)
begin
free_flags = 64'b0;
end
else
begin
free_flags = free_flags & in_free_flgs | out_reset_flgs;
end
endmodule
Полный Quarus в наборе имеет
Quartus
ModeSim
IP Cores
NIOS
и вроде че то еще
И весит что то около 1Гб
WEB окло 300 мег и почти ничего нету, но клизма подходит что к полному что к урезаному варианту.
Ну SystemVerilog это чуть из другой песни
А так что то в таком духе
ЗЫ: Синтаксис циклов не сильно помью ибо до такого обычно редко доходит, тебе нада спецификацию Verilog почитать очень лаконично расписанна, вспомню как зовется - кину ссылку.Код:integer I;
for (I:=0;I<16;I++)
OperRegQueue_mux1 ( clk, in_free_flgs[(I+1)*4-1:I*4], I , in_empty_triads[I],
out_write[I], out_nums[0][I], out_nums[1][I], out_nums[2][I], out_reset_flgs[(I+1)*4-1:I*4] );
Во IEEE 1364
не, шлет подальше.
Error (10170): Verilog HDL syntax error at OperRegQueue_step1.v(25) near text "for"; expecting an identifier ("for" is a reserved keyword ), or "endmodule", or a parallel statement
Внутри always-блока прокатило (я уже раньше попробовал), но там же нет обращения к модулям, просто набор присваиваний.
Это не нужно, это отдельный программатор, чтобы без квартуса в микросхемы готовые прошивки заливать. Программатор входит внутрь квартуса.Цитата:
Сообщение от Vladimir Kladov
Стандарта Verilog 2001 для циклов и условных конструкций достаточно, а вообще я бы советовал использовать VHDL (он похож на паскаль и ада, вам я думаю это привычнее будет) и поддерживает if/generate и for/generate с самой первой версии. Плюс к тому поддерживает типы данных, как обычный язык программирования, что позволяет при моделировании автомата видень состояние автомата в виде осмысленного текста (s_idle, s_rx и т.п.). Кроме того VHDL поддерживает 9ти значную логику, кроме состояний '0', '1' есть еще 'X', 'Z' и различные уровни нагрузки, от weak до strong (что необхдимо для выявления гонок при моделировании).Цитата:
Сообщение от Vladimir Kladov
Верилог изначально предполагался совсем для других целей (это был внутренний язык для синтеза фирмы Cadence) и поддерживает всего 2 типа "провод" и "регистр", поэтому при симуляции видны только нули и единицы.