Nemoji 0 April 30, 2015 Posted April 30, 2015 (edited) · Report post Вот недавно выкладывал Спасибо за Ваш ответ. Но, поправьте меня, если я ошибаюсьт, разве cordic_light написан не для вычисления значения cos и sin? При тестирование у меня все значения фазы нулями забиты рис 1. И еще вопросик, я так понимаю, что эту часть кода можно безболезненно удалить (с ним симулятор ругается на отсутсвующее устройство)? altsyncram# ( .address_reg_b ( "CLOCK1" ), .clock_enable_input_a ( "NORMAL" ), .clock_enable_input_b ( "NORMAL" ), .clock_enable_output_a ( "NORMAL" ), .clock_enable_output_b ( "NORMAL" ), .indata_reg_b ( "CLOCK1" ), .intended_device_family ( "Cyclone V" ), .lpm_type ( "altsyncram" ), .numwords_a ( 32 ), .numwords_b ( 32 ), .operation_mode ( "ROM" ), .outdata_aclr_a ( "NONE" ), .outdata_aclr_b ( "NONE" ), .outdata_reg_a ( "CLOCK0" ), .outdata_reg_b ( "CLOCK1" ), .power_up_uninitialized ( "FALSE" ), .ram_block_type ( "M10K" ), .init_file ( "cordic32.mif" ), .read_during_write_mode_port_a ( "NEW_DATA_NO_NBE_READ" ), .read_during_write_mode_port_b ( "NEW_DATA_NO_NBE_READ" ), .widthad_a ( 5 ), .widthad_b ( 5 ), .width_a ( 32 ), .width_b ( 32 ), .width_byteena_a ( 1 ), .width_byteena_b ( 1 ), .wrcontrol_wraddress_reg_b ( "CLOCK1" ) ) rom__ ( .address_a ( rom__address ), .address_b ( ), .clock0 ( rom__clock ), .clock1 ( ), .clocken0 ( rom__enable ), .clocken1 ( ), .data_a ( ), .data_b ( ), .wren_a ( 1'b0 ), .wren_b ( 1'b0 ), .q_a ( rom__data ), .q_b ( ), .aclr0 ( 1'b0 ), .aclr1 ( 1'b0 ), .addressstall_a ( 1'b0 ), .addressstall_b ( 1'b0 ), .byteena_a ( 1'b1 ), .byteena_b ( 1'b1 ), .clocken2 ( 1'b1 ), .clocken3 ( 1'b1 ), .eccstatus ( ), .rden_a ( 1'b1 ), .rden_b ( 1'b1 ) ); endmodule ? Вот прилагаю результат симляции WAVE-ка Рис 1 Edited April 30, 2015 by Nemoji Quote Share this post Link to post Share on other sites More sharing options...
serjj1333 0 April 30, 2015 Posted April 30, 2015 (edited) · Report post Спасибо за Ваш ответ. Но, поправьте меня, если я ошибаюсьт, разве cordic_light написан не для вычисления значения cos и sin? При тестирование у меня все значения фазы нулями забиты рис 1. И еще вопросик, я так понимаю, что эту часть кода можно безболезненно удалить (с ним симулятор ругается на отсутсвующее устройство)? Эта версия кордика считает именно арктангенс и амплитуду. Эта часть - это таблица углов для итераций кордика, её удалять нельзя. Вы можете её заменить, если у вас Xilinx, на соответствующую память. Файл mif легко смотрится в блакноте. Если у вас Altera, то вам в симулятор нужно скомпилировать соответствующие библиотеки из папки с квартусом и всё будет работать. Edited April 30, 2015 by serjj Quote Share this post Link to post Share on other sites More sharing options...
Nemoji 0 April 30, 2015 Posted April 30, 2015 (edited) · Report post Эта версия кордика считает именно арктангенс и амплитуду. Эта часть - это таблица углов для итераций кордика, её удалять нельзя. Вы можете её заменить, если у вас Xilinx, на соответствующую память. Файл mif легко смотрится в блакноте. Если у вас Altera, то вам в симулятор нужно скомпилировать соответствующие библиотеки из папки с квартусом и всё будет работать. Файл mif я вскрыл. У меня Altera (сама ПЛИСС, если быть точнее, еще в пути), купил, решил разбираться на ходу, вот пытаюсь собрать измеритель фаз. Ошибка была : Error: (vsim-3033) C:/cord/cordic_5_0/cordic_base.sv(229): Instantiation of 'altsyncram' failed. The design unit was not found. Поковырялся в файлах квартуса altsyncram.v, добавил, скомпилировал, симуляция прошла :08: . Но увы, на выходе фаза так и не появилась, как и в предыдущем случае ophase имеет вид xxxxxxxxx и постоянно выскакикает прерывание. Возможно, я что-то недопонимаю (все таки всего пару недель с этим дело имею), но все равно спасибо Вам за отклик, буду пытаться что-то найти! =) Edited April 30, 2015 by Nemoji Quote Share this post Link to post Share on other sites More sharing options...
serjj1333 0 April 30, 2015 Posted April 30, 2015 · Report post Файл mif я вскрыл. У меня Altera (сама ПЛИСС, если быть точнее, еще в пути), купил, решил разбираться на ходу, вот пытаюсь собрать измеритель фаз. Ошибка была : Error: (vsim-3033) C:/cord/cordic_5_0/cordic_base.sv(229): Instantiation of 'altsyncram' failed. The design unit was not found. Поковырялся в файлах квартуса altsyncram.v, добавил, скомпилировал, симуляция прошла 08.gif . Но увы, на выходе фаза так и не появилась, как и в предыдущем случае ophase имеет вид xxxxxxxxx и постоянно выскакикает прерывание. Возможно, я что-то недопонимаю (все таки всего пару недель с этим дело имею), но все равно спасибо Вам за отклик, буду пытаться что-то найти! =) Вы мой тестбенч запускали? Вам нужно не файл добавлять, а скомпилировать альтеровские либы в ваш modelsim/questasim. Вот эта ссылка может помочь. Я добавляю библиотеки: altera_mf, cyclonev, lpm, sgate и больше об них не парюсь. Поищите по форуму, про это писано очень много. Также вы можете заменить ROM в исходниках на неявно описанную память, используя темплейты квартуса для верилога, там пример есть. Я писал под конкретный проект, было проще описывать память явно. Quote Share this post Link to post Share on other sites More sharing options...