Maverick_ 15 18 мая, 2019 Опубликовано 18 мая, 2019 · Жалоба Добрый день есть базовый рабочий проект созданный по https://bitlog.it/hardware/building-embedded-linux-for-the-terasic-de10-nano-and-other-cyclone-v-soc-fpgas/ решил усложнить, для возможности писать/читать несколько регистров для этого я модифицировал верилог описание на module custom_leds ( input logic clk, // clock.clk input logic reset, // reset.reset // Memory mapped read/write slave interface input logic [3:0] avs_s0_address, // avs_s0.address input logic avs_s0_read, // avs_s0.read input logic avs_s0_write, // avs_s0.write output logic [31:0] avs_s0_readdata, // avs_s0.readdata input logic [31:0] avs_s0_writedata, // avs_s0.writedata // The LED outputs output logic [7:0] leds ); logic [31:0] reg0_data; logic [31:0] reg1_data; logic [31:0] reg2_data; // Read operations performed on the Avalon-MM Slave interface always_ff @ (posedge clk) begin if (reset) begin avs_s0_readdata <= 32'h00000000; if (avs_s0_read) begin case (avs_s0_address) 4'b0000 : avs_s0_readdata <= {24'b0, leds}; 4'b0001 : avs_s0_readdata <= 32'h0000000F; 4'b0010 : avs_s0_readdata <= 32'h0000000C; 4'b0011 : avs_s0_readdata <= 32'hAAAAAAAA; 4'b0100 : avs_s0_readdata <= 32'h55555555; 4'b0101 : avs_s0_readdata <= reg0_data; 4'b0110 : avs_s0_readdata <= reg1_data; default : avs_s0_readdata <= reg2_data; endcase end else begin avs_s0_readdata <= 32'h00000000; end end end // Write operations performed on the Avalon-MM Slave interface always_ff @ (posedge clk) begin if (reset) begin leds <= 8'h00; reg0_data <= 32'h00000000; reg1_data <= 32'h00000000; reg2_data <= 32'h00000000; end else if (avs_s0_write) begin case (avs_s0_address) 4'b0000 : leds <= avs_s0_writedata; 4'b0001 : reg0_data <= avs_s0_writedata; 4'b0010 : reg1_data <= avs_s0_writedata; default : reg2_data <= avs_s0_writedata; endcase end end endmodule // custom_leds сгенерровл заново h файл (вложение). Но как по адресу читать/писать для меня загадка - помогите кто знает пожалуйста hps_custom.h Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Jury093 2 18 мая, 2019 Опубликовано 18 мая, 2019 · Жалоба 4 часа назад, Maverick_ сказал: есть базовый рабочий проект созданный по https://bitlog.it/hardware/building-embedded-linux-for-the-terasic-de10-nano-and-other-cyclone-v-soc-fpgas/ сгенерровл заново h файл (вложение). Но как по адресу читать/писать для меня загадка - помогите кто знает пожалуйста hps_custom.h по вашей ссылке есть step9 и step10 первый пример обращается к железу из юзерспейса, второй в виде модуля ядра, т.е. как минимум по начальному адресу читать/писать должно. я не владею верилогом, но обычно к следующим регистрам доступ будет через baseaddr + offset (где offset кратен 4) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
new123 0 21 мая, 2019 Опубликовано 21 мая, 2019 · Жалоба Писать с драйвера? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться