Kostochkin 0 23 июня, 2021 Опубликовано 23 июня, 2021 · Жалоба Здравствуйте. В модуле на systemverilog есть структура, объявленная в package: typedef struct packed { logic wen_fifo; logic [31:0] data_fifo_in; logic rd_fifo; logic [31:0] data_fifo_out; logic afull; logic fempty; logic wen_queue; logic rd_queue; logic qempty;} STR_FIFO; В симуляции все работает. В quartus 17.1 в signaltap я вижу, что структура почему-то не заполняется, хотя fsm отрабатывает верно, и ничего не оптимизированно. На systemverilog пишу недавно. Может я что-то упустил. Благодарю. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
RobFPGA 27 24 июня, 2021 Опубликовано 24 июня, 2021 · Жалоба Приветствую! 2 hours ago, Kostochkin said: В quartus 17.1 в signaltap я вижу, что структура почему-то не заполняется, хотя fsm отрабатывает верно, и ничего не оптимизированно. ... Может я что-то упустил. И не только в Quartus - тут тоже не видно что структура заполняется. Упустили как минимум описание того как именно вы работаете со структурой. Удачи! Rob. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Kostochkin 0 24 июня, 2021 Опубликовано 24 июня, 2021 · Жалоба Вот пример `timescale 1ns / 1ps package pack_rx; typedef struct packed { logic [31:0] m0; logic [15:0] m1; logic [7:0] m2;} STR_A; endpackage : pack_rx module rx_t import pack_rx::STR_A; #() ( input logic clk, input logic data_vd, input logic [15:0] data, output logic data_out ); STR_A STR_PAR; logic [7:0] state; logic r_data_out; initial begin r_data_out = 1'b0; state = 0; end always @(posedge clk) begin if (data_vd) begin state <= state + 1; case (state) 2:begin STR_PAR.m0[31:16] <= data; end 3:begin STR_PAR.m0[15:0] <= data; end 4:begin STR_PAR.m1 <= data; end 8:begin STR_PAR.m2 <= data[15:8]; end default:; endcase end else begin if ((STR_PAR.m0 == 32'h00001100) & (STR_PAR.m2 == 8'h05)) r_data_out <= 1'b1; else r_data_out <= 1'b0; end end assign data_out = r_data_out; endmodule Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться