2
我用這個實體:VHDL GENERIC多維數組
ENTITY SPI_PT100 IS
GENERIC
(
PT100_DATA_SIZE : INTEGER := 8; --nombre de data à envoyer par trame
PT100_NB_MOSI : INTEGER := 3; --nombre de ligne MOSI
PT100_10ms_CNT : INTEGER := 400000; --nb tick in_clk entre deux trames (défaut 10ms @ 40Mhz)
PT100_500ns_CNT : INTEGER := 20 --nb de tick in_clk entre deux changement d'état sur SCLK (1/2 periode) (défaut : sclk = 1Mhz)
);
PORT
(
--input
in_clk : IN STD_LOGIC; --40Mhz
in_data : IN STD_LOGIC_VECTOR((PT100_DATA_SIZE-1) DOWNTO 0); --data à envoyer
--output
out_spi_sclk : OUT STD_LOGIC := '0'; --clk du SPI
out_spi_u_sync : OUT STD_LOGIC := '1'; -- u_sync du SPI
out_spi_mosi : OUT STD_LOGIC := '0' -- mosi du SPI
);
END ENTITY;
我想用PT100_NB_MOSI作爲通用multiaray尺寸:
in_data : IN STD_LOGIC_VECTOR((PT100_DATA_SIZE-1) DOWNTO 0); ==>
in_data : IN STD_LOGIC_VECTOR((PT100_NB_MOSI-1) DOWNTO 0)) OF ((PT100_DATA_SIZE-1) DOWNTO 0);
我知道我可以使用類型或亞型做但在這種情況下,我認爲我必須使用一個包。 是否有隻使用GENERIC機制的解決方案?
這可以在VHDL-2008中完成。在工具供應商支持之前還有幾十年必須通過。 –