lkg47 0 12 февраля, 2018 Опубликовано 12 февраля, 2018 · Жалоба Здравствуйте, подскажите пожалуйста: Возможно ли импортировать из package(Systemverilog) список состояний enum одним разом? package pck; enum int unsigned { a, b, c } state_t; endpackage module m1 import pck:: state_t, pck:: a, //как исключить эту запись? pck:: b, //как исключить эту запись? pck:: c; //как исключить эту запись? ( input logic clk ); state_t state; always_ff@(posedge clk) begin case (state) a:out <= "A"; b:out <= "B"; c:out <= "C"; default: out <= "D"; endcase end endmodule Причина: можно использовать запись в виде "import:*;" но в этом случае если модуль большой то не сразу понятно какие параметры задействованы, поэтому хотелось бы импортировать поименно, но с enum выходит вышеуказанная проблема. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
lkg47 0 13 февраля, 2018 Опубликовано 13 февраля, 2018 · Жалоба видимо это сделать не возможно, решил пойти путем создания нескольких независимых package с полным импортом через "import package_name::*;" Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Golikov 0 13 февраля, 2018 Опубликовано 13 февраля, 2018 · Жалоба а import package_name::enum_name::* не работает? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
lkg47 0 14 февраля, 2018 Опубликовано 14 февраля, 2018 · Жалоба а import package_name::enum_name::* не работает? Нет, не работает: package_for_fsm.sv(56): near "::": syntax error, unexpected ::, expecting ';' or ',' `timescale 1ns / 1ps module top ( ); //===========================================/ //GEN //===========================================/ logic clk = 'b0; always #10 clk = ~clk; //===========================================/ //TEST UNIT //===========================================/ logic [7:0] out; m1 m1_inst( .clk(clk), .out(out) ); endmodule //===========================================/ //PACKAGE //===========================================/ package pck; typedef enum int unsigned { a, b, c } state_t; endpackage //===========================================/ //TEST_MODULE //===========================================/ module m1 import // pck:: state_t, pck:: state_t::*; /* pck:: a, //как исключить эту запись? pck:: b, //как исключить эту запись? pck:: c; //как исключить эту запись? */ ( input logic clk, output logic [7:0] out = 'b0 ); state_t state; always_ff@(posedge clk) begin case (state) a: begin state <= b; out <= "A"; end b: begin state <= c; out <= "B"; end c: begin state <= a; out <= "C"; end default: begin state <= a; out <= "D"; end endcase end endmodule Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться