Вася0 0 26 февраля, 2019 Опубликовано 26 февраля, 2019 (изменено) · Жалоба Здравствуйте, пишу свой первый проект на ПЛИС (verilog, max10), проект создаю в учебных целях. Создал систему в Qsys: nios, память(sdram), Jtag, и самописный компонент. Внутри самописного компонента, с просторов интернета контроллер памяти sdram(отдельно от памяти nios), счетчик и DCFIFO для передачи из счетчика на sdram. Nios запускает счетчик, тот в считает до оперделенного числа, и записывает в FIFO, оттуда контроллер sdram забирает данные и пишет в память. Nios и счетчик работают на 100Мгц, sdram и память на 125Мгц, FIFO двухклоковое на запись 100 Мгц на чтение 125 Мгц. На симуляции все работает отлично но в железе появляются проблемы констрейнов. В assigment поставил sdram выводам fast IO, клоки сделал Global Clock. Sdram для Nios работет timequest не ругается, а в моем компоненте постоянно ошибки памяти и я не могу понять почему такие большие слаки. Память микрон MT48LC16M16A2. На nios память микрон MT48LC4M32B2. Констрейны nios sdram Спойлер derive_pll_clocks -create_base_clocks set_clock_groups -exclusive -group [get_clocks {nios_sdram_oclk pll_system_|altpll_component|auto_generated|pll1|clk[0]}] create_generated_clock -name nios_sdram_oclk -invert -source [get_pins {pll_system_|altpll_component|auto_generated|pll1|clk[0]}] [get_ports { sdram_nios_clk}] derive_clock_uncertainty set_multicycle_path -from [get_clocks {nios_sdram_oclk}] -to [get_clocks pll_system_|altpll_component|auto_generated|pll1|clk[0]] -setup 2 set_multicycle_path -from [get_clocks {nios_sdram_oclk}] -to [get_clocks pll_system_|altpll_component|auto_generated|pll1|clk[0]] -hold 0 set_input_delay -clock [get_clocks nios_sdram_oclk] -max 5.4 [get_ports {sdram_nios_dq[*]}] set_input_delay -clock [get_clocks nios_sdram_oclk] -min 3.1 [get_ports {sdram_nios_dq[*]}] set_output_delay -clock [get_clocks nios_sdram_oclk] -max 1.2 [get_ports { sdram_nios_dqm[*] sdram_nios_ba[*] sdram_nios_a[*] sdram_nios_cs_n sdram_nios_cas_n sdram_nios_ras_n sdram_nios_cke sdram_nios_we_n sdram_nios_dq[*] }] set_output_delay -clock [get_clocks nios_sdram_oclk] -min 0.8 [get_ports { sdram_nios_dqm[*] sdram_nios_ba[*] sdram_nios_a[*] sdram_nios_cs_n sdram_nios_cas_n sdram_nios_ras_n sdram_nios_cke sdram_nios_we_n sdram_nios_dq[*] }] Констрейны контроллера Спойлер create_generated_clock -name sdram_oclk -invert -source [get_pins {pll_system_|altpll_component|auto_generated|pll1|clk[1]}] [get_ports {sdram0_clk sdram1_clk}] set_clock_groups -exclusive -group [get_clocks {sdram_oclk pll_system_|altpll_component|auto_generated|pll1|clk[1]}] set_multicycle_path -from [get_clocks {sdram_oclk}] -to [get_clocks pll_system_|altpll_component|auto_generated|pll1|clk[1]] -setup 2 set_multicycle_path -from [get_clocks {sdram_oclk}] -to [get_clocks pll_system_|altpll_component|auto_generated|pll1|clk[1]] -hold 0 set_input_delay -clock [get_clocks sdram_oclk] -add_delay -max 5.4 [get_ports {sdram0_dq[*]}] set_input_delay -clock [get_clocks sdram_oclk] -add_delay -min 3.1 [get_ports {sdram0_dq[*]}] set_input_delay -clock [get_clocks sdram_oclk] -add_delay -max 5.4 [get_ports { sdram1_dq[*]}] set_input_delay -clock [get_clocks sdram_oclk] -add_delay -min 3.1 [get_ports { sdram1_dq[*]}] set_output_delay -clock [get_clocks sdram_oclk] -add_delay -max 1.2 [get_ports { sdram0_ba[*] sdram0_a[*] sdram0_cs_n sdram0_cas_n sdram0_ras_n sdram0_cke sdram0_we_n sdram0_dq[*]}] set_output_delay -clock [get_clocks sdram_oclk] -add_delay -max 1.2 [get_ports { sdram1_ba[*] sdram1_a[*] sdram1_cs_n sdram1_cas_n sdram1_ras_n sdram1_cke sdram1_we_n sdram1_dq[*] }] set_output_delay -clock [get_clocks sdram_oclk] -add_delay -min 0.8 [get_ports { sdram0_ba[*] sdram0_a[*] sdram0_cs_n sdram0_cas_n sdram0_ras_n sdram0_cke sdram0_we_n sdram0_dq[*]}] set_output_delay -clock [get_clocks sdram_oclk] -add_delay -min 0.8 [get_ports { sdram1_ba[*] sdram1_a[*] sdram1_cs_n sdram1_cas_n sdram1_ras_n sdram1_cke sdram1_we_n sdram1_dq[*] }] Общая картина: Клок Nios sdram Sdram внутри компонента. Не могу понять причину почему sdram внутри моего компонента так отличается от sdram используемого nios. Уже 2 недели бьюсь, может кто-то подскажет? Исходник компонента прилагаю. src.sv Изменено 26 февраля, 2019 пользователем Вася0 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться