реклама на сайте
подробности

 
 
41 страниц V  « < 39 40 41  
Reply to this topicStart new topic
> NIOS для начинающих
lostbegan
сообщение Feb 5 2017, 11:44
Сообщение #601


Участник
*

Группа: Участник
Сообщений: 40
Регистрация: 6-01-17
Пользователь №: 94 893



Если моделировать этот код в одиночку, то нет ничего кроме резета и клока. А с файлами проекта при симуляции ошибки
Go to the top of the page
 
+Quote Post
AVR
сообщение Feb 5 2017, 12:08
Сообщение #602


фанат Linux'а
*****

Группа: Свой
Сообщений: 1 029
Регистрация: 23-10-05
Из: SPB.RU
Пользователь №: 10 008



Цитата(lostbegan @ Feb 5 2017, 14:44) *
Если моделировать этот код в одиночку, то нет ничего кроме резета и клока. А с файлами проекта при симуляции ошибки
К сожалению, на этом этапе подсказать не смогу. Для меня это точно такая же неведомая область, с подводными камнями и граблями.

Мне приходилось конечно симулировать сложные корки в ModelSim, там я создавал TCL-скрипт, который добавлял в проект кучу файлов (чтобы каждый раз не вбивать эти файлы вручную). Думаю можно попробовать добавить сначала сам тестбенч и самый верхний модуль Nios2 который вставлен в тестбенч. Так, запуская раз за разом и видя что не найден такой-то модуль - добавлять его в файл скрипта. И так, за много итераций можно найти все нужные модули. Это немного не поэтично, зато рабочий способ добавить все нужные файлы.

Какие ошибки?


--------------------
Go to the top of the page
 
+Quote Post
lostbegan
сообщение Feb 5 2017, 12:17
Сообщение #603


Участник
*

Группа: Участник
Сообщений: 40
Регистрация: 6-01-17
Пользователь №: 94 893



Цитата(AVR @ Feb 5 2017, 13:08) *
Какие ошибки?


Я пытаюсь компиллировать тот тестбенч и файл, который создался квартусом с кодом
CODE
// app_NiosII.v

// Generated using ACDS version 16.1 196

`timescale 1 ps / 1 ps
module app_NiosII (
input wire clk_clk, // clk.clk
input wire [7:0] pio_in_external_connection_export, // pio_in_external_connection.export
output wire [7:0] pio_out_external_connection_export, // pio_out_external_connection.export
input wire reset_reset_n // reset.reset_n
);

wire [31:0] nios2_qsys_data_master_readdata; // mm_interconnect_0:nios2_qsys_data_master_readdata -> nios2_qsys:d_readdata
wire nios2_qsys_data_master_waitrequest; // mm_interconnect_0:nios2_qsys_data_master_waitrequest -> nios2_qsys:d_waitrequest
wire nios2_qsys_data_master_debugaccess; // nios2_qsys:jtag_debug_module_debugaccess_to_roms -> mm_interconnect_0:nios2_qsys_data_master_debugaccess
wire [18:0] nios2_qsys_data_master_address; // nios2_qsys:d_address -> mm_interconnect_0:nios2_qsys_data_master_address
wire [3:0] nios2_qsys_data_master_byteenable; // nios2_qsys:d_byteenable -> mm_interconnect_0:nios2_qsys_data_master_byteenable
wire nios2_qsys_data_master_read; // nios2_qsys:d_read -> mm_interconnect_0:nios2_qsys_data_master_read
wire nios2_qsys_data_master_write; // nios2_qsys:d_write -> mm_interconnect_0:nios2_qsys_data_master_write
wire [31:0] nios2_qsys_data_master_writedata; // nios2_qsys:d_writedata -> mm_interconnect_0:nios2_qsys_data_master_writedata
wire [31:0] nios2_qsys_instruction_master_readdata; // mm_interconnect_0:nios2_qsys_instruction_master_readdata -> nios2_qsys:i_readdata
wire nios2_qsys_instruction_master_waitrequest; // mm_interconnect_0:nios2_qsys_instruction_master_waitrequest -> nios2_qsys:i_waitrequest
wire [18:0] nios2_qsys_instruction_master_address; // nios2_qsys:i_address -> mm_interconnect_0:nios2_qsys_instruction_master_address
wire nios2_qsys_instruction_master_read; // nios2_qsys:i_read -> mm_interconnect_0:nios2_qsys_instruction_master_read
wire [31:0] mm_interconnect_0_nios2_qsys_jtag_debug_module_readdata; // nios2_qsys:jtag_debug_module_readdata -> mm_interconnect_0:nios2_qsys_jtag_debug_module_readdata
wire mm_interconnect_0_nios2_qsys_jtag_debug_module_waitrequest; // nios2_qsys:jtag_debug_module_waitrequest -> mm_interconnect_0:nios2_qsys_jtag_debug_module_waitrequest
wire mm_interconnect_0_nios2_qsys_jtag_debug_module_debugaccess; // mm_interconnect_0:nios2_qsys_jtag_debug_module_debugaccess -> nios2_qsys:jtag_debug_module_debugaccess
wire [8:0] mm_interconnect_0_nios2_qsys_jtag_debug_module_address; // mm_interconnect_0:nios2_qsys_jtag_debug_module_address -> nios2_qsys:jtag_debug_module_address
wire mm_interconnect_0_nios2_qsys_jtag_debug_module_read; // mm_interconnect_0:nios2_qsys_jtag_debug_module_read -> nios2_qsys:jtag_debug_module_read
wire [3:0] mm_interconnect_0_nios2_qsys_jtag_debug_module_byteenable; // mm_interconnect_0:nios2_qsys_jtag_debug_module_byteenable -> nios2_qsys:jtag_debug_module_byteenable
wire mm_interconnect_0_nios2_qsys_jtag_debug_module_write; // mm_interconnect_0:nios2_qsys_jtag_debug_module_write -> nios2_qsys:jtag_debug_module_write
wire [31:0] mm_interconnect_0_nios2_qsys_jtag_debug_module_writedata; // mm_interconnect_0:nios2_qsys_jtag_debug_module_writedata -> nios2_qsys:jtag_debug_module_writedata
wire mm_interconnect_0_onchip_memory_s1_chipselect; // mm_interconnect_0:onchip_memory_s1_chipselect -> onchip_memory:chipselect
wire [31:0] mm_interconnect_0_onchip_memory_s1_readdata; // onchip_memory:readdata -> mm_interconnect_0:onchip_memory_s1_readdata
wire [14:0] mm_interconnect_0_onchip_memory_s1_address; // mm_interconnect_0:onchip_memory_s1_address -> onchip_memory:address
wire [3:0] mm_interconnect_0_onchip_memory_s1_byteenable; // mm_interconnect_0:onchip_memory_s1_byteenable -> onchip_memory:byteenable
wire mm_interconnect_0_onchip_memory_s1_write; // mm_interconnect_0:onchip_memory_s1_write -> onchip_memory:write
wire [31:0] mm_interconnect_0_onchip_memory_s1_writedata; // mm_interconnect_0:onchip_memory_s1_writedata -> onchip_memory:writedata
wire mm_interconnect_0_onchip_memory_s1_clken; // mm_interconnect_0:onchip_memory_s1_clken -> onchip_memory:clken
wire mm_interconnect_0_pio_out_s1_chipselect; // mm_interconnect_0:pio_out_s1_chipselect -> pio_out:chipselect
wire [31:0] mm_interconnect_0_pio_out_s1_readdata; // pio_out:readdata -> mm_interconnect_0:pio_out_s1_readdata
wire [1:0] mm_interconnect_0_pio_out_s1_address; // mm_interconnect_0:pio_out_s1_address -> pio_out:address
wire mm_interconnect_0_pio_out_s1_write; // mm_interconnect_0:pio_out_s1_write -> pio_out:write_n
wire [31:0] mm_interconnect_0_pio_out_s1_writedata; // mm_interconnect_0:pio_out_s1_writedata -> pio_out:writedata
wire [31:0] mm_interconnect_0_pio_in_s1_readdata; // pio_in:readdata -> mm_interconnect_0:pio_in_s1_readdata
wire [1:0] mm_interconnect_0_pio_in_s1_address; // mm_interconnect_0:pio_in_s1_address -> pio_in:address
wire [31:0] nios2_qsys_d_irq_irq; // irq_mapper:sender_irq -> nios2_qsys:d_irq
wire rst_controller_reset_out_reset; // rst_controller:reset_out -> [irq_mapper:reset, mm_interconnect_0:nios2_qsys_reset_n_reset_bridge_in_reset_reset, nios2_qsys:reset_n, onchip_memory:reset, pio_in:reset_n, pio_out:reset_n, rst_translator:in_reset]
wire rst_controller_reset_out_reset_req; // rst_controller:reset_req -> [nios2_qsys:reset_req, onchip_memory:reset_req, rst_translator:reset_req_in]
wire nios2_qsys_jtag_debug_module_reset_reset; // nios2_qsys:jtag_debug_module_resetrequest -> rst_controller:reset_in1

app_NiosII_nios2_qsys nios2_qsys (
.clk (clk_clk), // clk.clk
.reset_n (~rst_controller_reset_out_reset), // reset_n.reset_n
.reset_req (rst_controller_reset_out_reset_req), // .reset_req
.d_address (nios2_qsys_data_master_address), // data_master.address
.d_byteenable (nios2_qsys_data_master_byteenable), // .byteenable
.d_read (nios2_qsys_data_master_read), // .read
.d_readdata (nios2_qsys_data_master_readdata), // .readdata
.d_waitrequest (nios2_qsys_data_master_waitrequest), // .waitrequest
.d_write (nios2_qsys_data_master_write), // .write
.d_writedata (nios2_qsys_data_master_writedata), // .writedata
.jtag_debug_module_debugaccess_to_roms (nios2_qsys_data_master_debugaccess), // .debugaccess
.i_address (nios2_qsys_instruction_master_address), // instruction_master.address
.i_read (nios2_qsys_instruction_master_read), // .read
.i_readdata (nios2_qsys_instruction_master_readdata), // .readdata
.i_waitrequest (nios2_qsys_instruction_master_waitrequest), // .waitrequest
.d_irq (nios2_qsys_d_irq_irq), // d_irq.irq
.jtag_debug_module_resetrequest (nios2_qsys_jtag_debug_module_reset_reset), // jtag_debug_module_reset.reset
.jtag_debug_module_address (mm_interconnect_0_nios2_qsys_jtag_debug_module_address), // jtag_debug_module.address
.jtag_debug_module_byteenable (mm_interconnect_0_nios2_qsys_jtag_debug_module_byteenable), // .byteenable
.jtag_debug_module_debugaccess (mm_interconnect_0_nios2_qsys_jtag_debug_module_debugaccess), // .debugaccess
.jtag_debug_module_read (mm_interconnect_0_nios2_qsys_jtag_debug_module_read), // .read
.jtag_debug_module_readdata (mm_interconnect_0_nios2_qsys_jtag_debug_module_readdata), // .readdata
.jtag_debug_module_waitrequest (mm_interconnect_0_nios2_qsys_jtag_debug_module_waitrequest), // .waitrequest
.jtag_debug_module_write (mm_interconnect_0_nios2_qsys_jtag_debug_module_write), // .write
.jtag_debug_module_writedata (mm_interconnect_0_nios2_qsys_jtag_debug_module_writedata), // .writedata
.no_ci_readra () // custom_instruction_master.readra
);

app_NiosII_onchip_memory onchip_memory (
.clk (clk_clk), // clk1.clk
.address (mm_interconnect_0_onchip_memory_s1_address), // s1.address
.clken (mm_interconnect_0_onchip_memory_s1_clken), // .clken
.chipselect (mm_interconnect_0_onchip_memory_s1_chipselect), // .chipselect
.write (mm_interconnect_0_onchip_memory_s1_write), // .write
.readdata (mm_interconnect_0_onchip_memory_s1_readdata), // .readdata
.writedata (mm_interconnect_0_onchip_memory_s1_writedata), // .writedata
.byteenable (mm_interconnect_0_onchip_memory_s1_byteenable), // .byteenable
.reset (rst_controller_reset_out_reset), // reset1.reset
.reset_req (rst_controller_reset_out_reset_req), // .reset_req
.freeze (1'b0) // (terminated)
);

app_NiosII_pio_in pio_in (
.clk (clk_clk), // clk.clk
.reset_n (~rst_controller_reset_out_reset), // reset.reset_n
.address (mm_interconnect_0_pio_in_s1_address), // s1.address
.readdata (mm_interconnect_0_pio_in_s1_readdata), // .readdata
.in_port (pio_in_external_connection_export) // external_connection.export
);

app_NiosII_pio_out pio_out (
.clk (clk_clk), // clk.clk
.reset_n (~rst_controller_reset_out_reset), // reset.reset_n
.address (mm_interconnect_0_pio_out_s1_address), // s1.address
.write_n (~mm_interconnect_0_pio_out_s1_write), // .write_n
.writedata (mm_interconnect_0_pio_out_s1_writedata), // .writedata
.chipselect (mm_interconnect_0_pio_out_s1_chipselect), // .chipselect
.readdata (mm_interconnect_0_pio_out_s1_readdata), // .readdata
.out_port (pio_out_external_connection_export) // external_connection.export
);

app_NiosII_mm_interconnect_0 mm_interconnect_0 (
.clk_clk_clk (clk_clk), // clk_clk.clk
.nios2_qsys_reset_n_reset_bridge_in_reset_reset (rst_controller_reset_out_reset), // nios2_qsys_reset_n_reset_bridge_in_reset.reset
.nios2_qsys_data_master_address (nios2_qsys_data_master_address), // nios2_qsys_data_master.address
.nios2_qsys_data_master_waitrequest (nios2_qsys_data_master_waitrequest), // .waitrequest
.nios2_qsys_data_master_byteenable (nios2_qsys_data_master_byteenable), // .byteenable
.nios2_qsys_data_master_read (nios2_qsys_data_master_read), // .read
.nios2_qsys_data_master_readdata (nios2_qsys_data_master_readdata), // .readdata
.nios2_qsys_data_master_write (nios2_qsys_data_master_write), // .write
.nios2_qsys_data_master_writedata (nios2_qsys_data_master_writedata), // .writedata
.nios2_qsys_data_master_debugaccess (nios2_qsys_data_master_debugaccess), // .debugaccess
.nios2_qsys_instruction_master_address (nios2_qsys_instruction_master_address), // nios2_qsys_instruction_master.address
.nios2_qsys_instruction_master_waitrequest (nios2_qsys_instruction_master_waitrequest), // .waitrequest
.nios2_qsys_instruction_master_read (nios2_qsys_instruction_master_read), // .read
.nios2_qsys_instruction_master_readdata (nios2_qsys_instruction_master_readdata), // .readdata
.nios2_qsys_jtag_debug_module_address (mm_interconnect_0_nios2_qsys_jtag_debug_module_address), // nios2_qsys_jtag_debug_module.address
.nios2_qsys_jtag_debug_module_write (mm_interconnect_0_nios2_qsys_jtag_debug_module_write), // .write
.nios2_qsys_jtag_debug_module_read (mm_interconnect_0_nios2_qsys_jtag_debug_module_read), // .read
.nios2_qsys_jtag_debug_module_readdata (mm_interconnect_0_nios2_qsys_jtag_debug_module_readdata), // .readdata
.nios2_qsys_jtag_debug_module_writedata (mm_interconnect_0_nios2_qsys_jtag_debug_module_writedata), // .writedata
.nios2_qsys_jtag_debug_module_byteenable (mm_interconnect_0_nios2_qsys_jtag_debug_module_byteenable), // .byteenable
.nios2_qsys_jtag_debug_module_waitrequest (mm_interconnect_0_nios2_qsys_jtag_debug_module_waitrequest), // .waitrequest
.nios2_qsys_jtag_debug_module_debugaccess (mm_interconnect_0_nios2_qsys_jtag_debug_module_debugaccess), // .debugaccess
.onchip_memory_s1_address (mm_interconnect_0_onchip_memory_s1_address), // onchip_memory_s1.address
.onchip_memory_s1_write (mm_interconnect_0_onchip_memory_s1_write), // .write
.onchip_memory_s1_readdata (mm_interconnect_0_onchip_memory_s1_readdata), // .readdata
.onchip_memory_s1_writedata (mm_interconnect_0_onchip_memory_s1_writedata), // .writedata
.onchip_memory_s1_byteenable (mm_interconnect_0_onchip_memory_s1_byteenable), // .byteenable
.onchip_memory_s1_chipselect (mm_interconnect_0_onchip_memory_s1_chipselect), // .chipselect
.onchip_memory_s1_clken (mm_interconnect_0_onchip_memory_s1_clken), // .clken
.pio_in_s1_address (mm_interconnect_0_pio_in_s1_address), // pio_in_s1.address
.pio_in_s1_readdata (mm_interconnect_0_pio_in_s1_readdata), // .readdata
.pio_out_s1_address (mm_interconnect_0_pio_out_s1_address), // pio_out_s1.address
.pio_out_s1_write (mm_interconnect_0_pio_out_s1_write), // .write
.pio_out_s1_readdata (mm_interconnect_0_pio_out_s1_readdata), // .readdata
.pio_out_s1_writedata (mm_interconnect_0_pio_out_s1_writedata), // .writedata
.pio_out_s1_chipselect (mm_interconnect_0_pio_out_s1_chipselect) // .chipselect
);

app_NiosII_irq_mapper irq_mapper (
.clk (clk_clk), // clk.clk
.reset (rst_controller_reset_out_reset), // clk_reset.reset
.sender_irq (nios2_qsys_d_irq_irq) // sender.irq
);

altera_reset_controller #(
.NUM_RESET_INPUTS (2),
.OUTPUT_RESET_SYNC_EDGES ("deassert"),
.SYNC_DEPTH (2),
.RESET_REQUEST_PRESENT (1),
.RESET_REQ_WAIT_TIME (1),
.MIN_RST_ASSERTION_TIME (3),
.RESET_REQ_EARLY_DSRT_TIME (1),
.USE_RESET_REQUEST_IN0 (0),
.USE_RESET_REQUEST_IN1 (0),
.USE_RESET_REQUEST_IN2 (0),
.USE_RESET_REQUEST_IN3 (0),
.USE_RESET_REQUEST_IN4 (0),
.USE_RESET_REQUEST_IN5 (0),
.USE_RESET_REQUEST_IN6 (0),
.USE_RESET_REQUEST_IN7 (0),
.USE_RESET_REQUEST_IN8 (0),
.USE_RESET_REQUEST_IN9 (0),
.USE_RESET_REQUEST_IN10 (0),
.USE_RESET_REQUEST_IN11 (0),
.USE_RESET_REQUEST_IN12 (0),
.USE_RESET_REQUEST_IN13 (0),
.USE_RESET_REQUEST_IN14 (0),
.USE_RESET_REQUEST_IN15 (0),
.ADAPT_RESET_REQUEST (0)
) rst_controller (
.reset_in0 (~reset_reset_n), // reset_in0.reset
.reset_in1 (nios2_qsys_jtag_debug_module_reset_reset), // reset_in1.reset
.clk (clk_clk), // clk.clk
.reset_out (rst_controller_reset_out_reset), // reset_out.reset
.reset_req (rst_controller_reset_out_reset_req), // .reset_req
.reset_req_in0 (1'b0), // (terminated)
.reset_req_in1 (1'b0), // (terminated)
.reset_in2 (1'b0), // (terminated)
.reset_req_in2 (1'b0), // (terminated)
.reset_in3 (1'b0), // (terminated)
.reset_req_in3 (1'b0), // (terminated)
.reset_in4 (1'b0), // (terminated)
.reset_req_in4 (1'b0), // (terminated)
.reset_in5 (1'b0), // (terminated)
.reset_req_in5 (1'b0), // (terminated)
.reset_in6 (1'b0), // (terminated)
.reset_req_in6 (1'b0), // (terminated)
.reset_in7 (1'b0), // (terminated)
.reset_req_in7 (1'b0), // (terminated)
.reset_in8 (1'b0), // (terminated)
.reset_req_in8 (1'b0), // (terminated)
.reset_in9 (1'b0), // (terminated)
.reset_req_in9 (1'b0), // (terminated)
.reset_in10 (1'b0), // (terminated)
.reset_req_in10 (1'b0), // (terminated)
.reset_in11 (1'b0), // (terminated)
.reset_req_in11 (1'b0), // (terminated)
.reset_in12 (1'b0), // (terminated)
.reset_req_in12 (1'b0), // (terminated)
.reset_in13 (1'b0), // (terminated)
.reset_req_in13 (1'b0), // (terminated)
.reset_in14 (1'b0), // (terminated)
.reset_req_in14 (1'b0), // (terminated)
.reset_in15 (1'b0), // (terminated)
.reset_req_in15 (1'b0) // (terminated)
);

endmodule


Получаю (скрин)


Эскизы прикрепленных изображений
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
AVR
сообщение Feb 5 2017, 12:19
Сообщение #604


фанат Linux'а
*****

Группа: Свой
Сообщений: 1 029
Регистрация: 23-10-05
Из: SPB.RU
Пользователь №: 10 008



Первая строка с Error говорит какой модуль не добавлен в проект. Надо его добавить в симуляцию. И таких может будет десять и даже 50 - всё надо добавить по-очереди. Шаг за шагом выясняя чего не хватает.


--------------------
Go to the top of the page
 
+Quote Post
lostbegan
сообщение Feb 5 2017, 12:22
Сообщение #605


Участник
*

Группа: Участник
Сообщений: 40
Регистрация: 6-01-17
Пользователь №: 94 893



Понял, попробую насобирать. спасибо большое!
Go to the top of the page
 
+Quote Post
lostbegan
сообщение Feb 13 2017, 17:53
Сообщение #606


Участник
*

Группа: Участник
Сообщений: 40
Регистрация: 6-01-17
Пользователь №: 94 893



Так и не выходит придти к ясной картинке. Опять столкнулся с тем, что слишком много вариантов. Тестбенч может формировать qsys, так же его может формировать сам квартус, а еще его может сформировать встроенная система моделирования, которая создает .vwf - это файл временных диаграмм, еще вручную можно написать. А так же моделировать можно либо запустив квартус, и пытаясь создать этот самый .vwf, а так же прямиком из эклипса - прошивочного софта можно запустить модел сим. Кстати он нормально формирует сам резет и клок, но ин/аут нулевые, как ни крути. Упростил код до того, чтобы через пио_аут вывести единицу, но нигде не могу добиться того, чтобы диаграмма хоть как то поменялась. Напомню что проект в квартусе скомпилирован в составе bdf, qip и hex. Всякие тестовые vhdl/verilog проектики, найденные в инете работают, то есть софт рабочий. Но такое чувство, что моя эклипсовская прошивка будто отрезана от всего проекта. Может кто нибудь сталкивался, или хотя бы поможет исключить какие либо варианты.

ПС: Попытка подсунуть в модел сим недостающие файлы тоже не увенчалась успехом. Количество ошибок с каждым файлом только увеличивается, да и один файлик я вообще не нашел. В общем то этот вариант вообще не думаю что практичный

Буду благодарен за любую, даже непроверенную идею
Go to the top of the page
 
+Quote Post
lostbegan
сообщение Feb 13 2017, 19:53
Сообщение #607


Участник
*

Группа: Участник
Сообщений: 40
Регистрация: 6-01-17
Пользователь №: 94 893



и возвращаясь к истокам, точно ли возможно увидеть работу сишной прошивки на ниосе без платы и бластера?
Go to the top of the page
 
+Quote Post
tvcam
сообщение Feb 13 2017, 20:48
Сообщение #608


Частый гость
**

Группа: Свой
Сообщений: 75
Регистрация: 10-12-04
Из: spb
Пользователь №: 1 435



Цитата(lostbegan @ Feb 13 2017, 22:53) *
и возвращаясь к истокам, точно ли возможно увидеть работу сишной прошивки на ниосе без платы и бластера?

В квартусе 8.1 точно можно увидеть, через встроенный симулятор.
Go to the top of the page
 
+Quote Post
AVR
сообщение Feb 14 2017, 07:36
Сообщение #609


фанат Linux'а
*****

Группа: Свой
Сообщений: 1 029
Регистрация: 23-10-05
Из: SPB.RU
Пользователь №: 10 008



Цитата(lostbegan @ Feb 13 2017, 22:53) *
и возвращаясь к истокам, точно ли возможно увидеть работу сишной прошивки на ниосе без платы и бластера?

Симулировать можно и более сложные вещи чем просто Nios2, я сам никогда такого не делал, но у меня есть уверенность что да.
Жаль я лишь на железе работал, не могу подсказать как (я только Xilinx Microblaze так симулировал).

Может создать отдельную тему, и там четко и подробно сообщить информацию о том что в симуляции получилось, а что нет, логи ошибок и тому подобное?
Найдется кто уже работал с симуляцией Nios2 и подскажет надеюсь.


--------------------
Go to the top of the page
 
+Quote Post
Грендайзер
сообщение Feb 14 2017, 09:17
Сообщение #610


Местный
***

Группа: Участник
Сообщений: 330
Регистрация: 18-04-11
Пользователь №: 64 451



Цитата
Может создать отдельную тему, и там четко и подробно сообщить информацию о том что в симуляции получилось, а что нет, логи ошибок и тому подобное?

Да под это дело можно и отдельную тему создать. Так как lostbegan написал мне в личку вопрос по теме моделирования NiosII в моделсиме, то влезу со своими тремя копейками. Сразу скажу, что я работал в SOPC builder и с Qsys работать не умею, и ещё было это давно и не правда sm.gif . В теме много написано, всё читать не стал, выхватил лишь суть, так что если открою Америку прошу не серчать. Перво наперво, RTL симуляцию я запускаю прям из квартуса (собственно GL запускается от туда же). В файлике, который я прикрепил это описано. Далее при генерации системы в SOPC builder необходимо указать путь к моделсиму и, сказать что бы та так же сгенерила файлики тестбенча. После этого достаточно найти головной файлик тестбенча (помоиму он находится в папке simmulation) и вписать туда формы входных воздействий. При этом такие сигналы как reset_n и clock в этом файле уже описаны. Так что останется лишь написать сишный код и запустить симмуляцию. Ещё 2 момента. 1) Если так простой файлик тестбенча найти не выходи, то его можно будет найти в уже запущеном моделсиме. 2) Босяцкий ниос (который бесплатный) вообще говоря очень медленный, и что бы инициализироваться ему нужна куча тактов, так что если клоки пошли и ресет = 1, а изменений выходных сигналов не наблюдается, продолжайте жмакать кнопочку run. Да по поводу генерации тестовых файлов в SOPC, поищите не то альтеровский апноут где то в нете валялся, не то какие то лабораторные какого то ни то массачусецкого не то ещё какого то бужуинского ВУЗА.
P.S. Поменял место работы и сейчас альтерой не занимаюсь. Ну и соответственно ни квартуса ни проектов на работе нет. Если дома что то осталось, то постараюсь выложить более подробную информацию. Надеюсь, что хоть немного смог помочь.

Сообщение отредактировал Грендайзер - Feb 14 2017, 09:20
Прикрепленные файлы
Прикрепленный файл  ModelSim_Altera_Simulation_Quartus_II_Setup.pdf ( 235.56 килобайт ) Кол-во скачиваний: 22
 
Go to the top of the page
 
+Quote Post
RLC
сообщение Apr 26 2017, 12:51
Сообщение #611


Участник
*

Группа: Участник
Сообщений: 54
Регистрация: 19-11-14
Из: СПб
Пользователь №: 83 740



ВОПРОС про usleep(1000);
Эта функция-задержка на 1мс(1000 мкс). Вопрос: во время этой задержки процессор будет обрабатывать настроенные ранее прерывания?
В докуменнтации описано что не поддерживает ISR.
Go to the top of the page
 
+Quote Post
Kuzmi4
сообщение Jul 24 2017, 10:09
Сообщение #612


Гуру
******

Группа: Свой
Сообщений: 3 218
Регистрация: 13-02-07
Из: 49°25′58″ 11°53′5″
Пользователь №: 25 329



Цитата(RLC @ Apr 26 2017, 15:51) *
..usleep..
Вопрос: во время этой задержки процессор будет обрабатывать настроенные ранее прерывания?

Эта ф-ция в bare-metal ниосе будет выглядеть как alt_busy_sleep:
..\nios2eds\components\altera_nios2\HAL\src\alt_busy_sleep.c
там вы увидите примерно такое: __asm__ volatile (..)
Из чего вытекает, что там ниос просто крутится в цикле рассчитанное кол-во раз. Если у вас разрешены прерывания то никаких проблемы с переходом из цикла у ниоса в этом случае не будет.
Go to the top of the page
 
+Quote Post

41 страниц V  « < 39 40 41
Reply to this topicStart new topic
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 21st August 2017 - 08:14
Рейтинг@Mail.ru


Страница сгенерированна за 0.01535 секунд с 7
ELECTRONIX ©2004-2016