jenya7 0 January 26 Posted January 26 (edited) · Report post в модуле module eth_mac_1g_rgmii_fifo # ( // target ("SIM", "GENERIC", "XILINX", "ALTERA") parameter TARGET = "GENERIC", // IODDR style ("IODDR", "IODDR2") // Use IODDR for Virtex-4, Virtex-5, Virtex-6, 7 Series, Ultrascale // Use IODDR2 for Spartan-6 parameter IODDR_STYLE = "IODDR2", // Clock input style ("BUFG", "BUFR", "BUFIO", "BUFIO2") // Use BUFR for Virtex-6, 7-series // Use BUFG for Virtex-5, Spartan-6, Ultrascale parameter CLOCK_INPUT_STYLE = "BUFG", // Use 90 degree clock for RGMII transmit ("TRUE", "FALSE") parameter USE_CLK90 = "TRUE", parameter AXIS_DATA_WIDTH = 8, parameter AXIS_KEEP_ENABLE = (AXIS_DATA_WIDTH>8), parameter AXIS_KEEP_WIDTH = (AXIS_DATA_WIDTH/8), parameter ENABLE_PADDING = 1, parameter MIN_FRAME_LENGTH = 64, parameter TX_FIFO_DEPTH = 4096, parameter TX_FIFO_RAM_PIPELINE = 1, parameter TX_FRAME_FIFO = 1, parameter TX_DROP_OVERSIZE_FRAME = TX_FRAME_FIFO, parameter TX_DROP_BAD_FRAME = TX_DROP_OVERSIZE_FRAME, parameter TX_DROP_WHEN_FULL = 0, parameter RX_FIFO_DEPTH = 4096, parameter RX_FIFO_RAM_PIPELINE = 1, parameter RX_FRAME_FIFO = 1, parameter RX_DROP_OVERSIZE_FRAME = RX_FRAME_FIFO, parameter RX_DROP_BAD_FRAME = RX_DROP_OVERSIZE_FRAME, parameter RX_DROP_WHEN_FULL = RX_DROP_OVERSIZE_FRAME ) в компоненте component eth_mac_1g_rgmii_fifo generic ( TARGET : string; IODDR_STYLE : string; CLOCK_INPUT_STYLE : string; USE_CLK90 : string; AXIS_DATA_WIDTH : integer; AXIS_KEEP_ENABLE : integer; AXIS_KEEP_WIDTH : integer; ENABLE_PADDING : integer; MIN_FRAME_LENGTH : integer; TX_FIFO_DEPTH : integer; TX_FIFO_RAM_PIPELINE : integer; TX_FRAME_FIFO : integer; TX_DROP_OVERSIZE_FRAME : integer; TX_DROP_BAD_FRAME : integer; TX_DROP_WHEN_FULL : integer; RX_FIFO_DEPTH : integer; RX_FIFO_RAM_PIPELINE : integer; RX_FRAME_FIFO : integer; RX_DROP_OVERSIZE_FRAME : integer; RX_DROP_BAD_FRAME : integer; RX_DROP_WHEN_FULL : integer ); делаю мап U_ETH_MAC : eth_mac_1g_rgmii_fifo generic map ( TARGET => "GENERIC", IODDR_STYLE => "IODDR", CLOCK_INPUT_STYLE => "BUFR", USE_CLK90 => "TRUE", AXIS_DATA_WIDTH => 8, AXIS_KEEP_ENABLE => AXIS_DATA_WIDTH>8, AXIS_KEEP_WIDTH => AXIS_DATA_WIDTH/8, ENABLE_PADDING => 1, MIN_FRAME_LENGTH => 64, TX_FIFO_DEPTH => 4096, TX_FIFO_RAM_PIPELINE => 1, TX_FRAME_FIFO => 1, TX_DROP_OVERSIZE_FRAME => TX_FRAME_FIFO, TX_DROP_BAD_FRAME => TX_DROP_OVERSIZE_FRAME, TX_DROP_WHEN_FULL => 0, RX_FIFO_DEPTH => 4096, RX_FIFO_RAM_PIPELINE => 1, RX_FRAME_FIFO => 1, RX_DROP_OVERSIZE_FRAME => RX_FRAME_FIFO, RX_DROP_BAD_FRAME => RX_DROP_OVERSIZE_FRAME, RX_DROP_WHEN_FULL => RX_DROP_OVERSIZE_FRAME ) получаю Quote Error (10482): VHDL error at mac_udp.vhd(599): object "AXIS_DATA_WIDTH" is used but not declared Error (10482): VHDL error at mac_udp.vhd(600): object "AXIS_DATA_WIDTH" is used but not declared Error (10482): VHDL error at mac_udp.vhd(606): object "TX_FRAME_FIFO" is used but not declared Error (10482): VHDL error at mac_udp.vhd(607): object "TX_DROP_OVERSIZE_FRAME" is used but not declared Error (10482): VHDL error at mac_udp.vhd(612): object "RX_FRAME_FIFO" is used but not declared Error (10482): VHDL error at mac_udp.vhd(613): object "RX_DROP_OVERSIZE_FRAME" is used but not declared Error (10482): VHDL error at mac_udp.vhd(614): object "RX_DROP_OVERSIZE_FRAME" is used but not declared в чём тут дело? я не могу приравнять один генерик к другому? он его не видит? Edited January 26 by jenya7 Quote Share this post Link to post Share on other sites More sharing options...
gridinp 2 January 26 Posted January 26 · Report post так ведь AXIS_DATA_WIDTH это параметр внутри eth_mac_1g_rgmii_fifo, а снаружи он как будет виден? Quote Share this post Link to post Share on other sites More sharing options...
jenya7 0 January 26 Posted January 26 (edited) · Report post On 1/26/2023 at 4:56 PM, gridinp said: так ведь AXIS_DATA_WIDTH это параметр внутри eth_mac_1g_rgmii_fifo, а снаружи он как будет виден? в смысле? также как и все другие. если вместо AXIS_DATA_WIDTH => 8, AXIS_KEEP_ENABLE => AXIS_DATA_WIDTH>8, AXIS_KEEP_WIDTH => AXIS_DATA_WIDTH/8, RX_DROP_OVERSIZE_FRAME => RX_FRAME_FIFO, RX_DROP_BAD_FRAME => RX_DROP_OVERSIZE_FRAME, RX_DROP_WHEN_FULL => RX_DROP_OVERSIZE_FRAME я напишу AXIS_DATA_WIDTH => 8, AXIS_KEEP_ENABLE => 0, AXIS_KEEP_WIDTH => 1, RX_DROP_OVERSIZE_FRAME => 1, RX_DROP_BAD_FRAME => 1, RX_DROP_WHEN_FULL => 1 то всё скомпилируется. Edited January 26 by jenya7 Quote Share this post Link to post Share on other sites More sharing options...
gridinp 2 January 26 Posted January 26 (edited) · Report post конечно, если до U_ETH_MAC : объявить константу AXIS_DATA_WIDTH := 8; и .т. д. тоже будет компилироваться. Edited January 26 by gridinp Quote Share this post Link to post Share on other sites More sharing options...