Hello, I get compile warnings (and later compile errors from other parts, but one after another...) in model sim with the following code. I do not get compile warnings when synthesizing the code with Lattice Diamond nor when compiling it with Active HDL. What is wrong with the following code?
1 | type TPhOptions is record |
2 | |
3 | sigPrintheadKCE : std_logic; |
4 | sigPH_PICAIIRohm : std_logic; |
5 | sigReg_Chan_Offs_6 : std_logic_vector( 7 downto 0); sigReg_Chan_Offs_5 : std_logic_vector( 7 downto 0); sigReg_Chan_Offs_4 : std_logic_vector( 7 downto 0); sigReg_Chan_Offs_3 : std_logic_vector( 7 downto 0); sigReg_Chan_Offs_2 : std_logic_vector( 7 downto 0); sigReg_Chan_Offs_1 : std_logic_vector( 7 downto 0); |
6 | |
7 | sigReg_Words_Per_Ch : std_logic_vector( 7 downto 0); |
8 | sigReg_LineOffs : std_logic_vector( 7 downto 0); |
9 | sigSPI_Clk_Duration : std_logic_vector( 3 downto 0); |
10 | sigSPI_Clk_Duty : std_logic_vector( 3 downto 0); |
11 | sigSPI_DataSwitch : std_logic_vector( 3 downto 0); |
12 | Bit16perLine : std_logic_vector( 7 downto 0); |
13 | sigEnableChannel : std_logic_vector( 5 downto 0); |
14 | REG_Latch_Setup_Time : std_logic_vector( 7 downto 0); |
15 | REG_Latch_End_Time : std_logic_vector( 7 downto 0); |
16 | REG_Strobe_Setup_Time : std_logic_vector( 7 downto 0); |
17 | REG_Burn_Prescaler : std_logic_vector( 7 downto 0); |
18 | sigReg_HeadFill32 : std_logic_vector( 7 downto 0); |
19 | |
20 | end record; |
21 | |
22 | -- then usage of length attribute in following constant definition
|
23 | |
24 | constant PH_OPTIONS_LEN: integer := |
25 | 1 + |
26 | 1 + |
27 | work.fpga_configP_helper.TPhOptions.sigReg_Chan_Offs_6'length + |
28 | TPhOptions.sigReg_Chan_Offs_5'length + |
29 | TPhOptions.sigReg_Chan_Offs_4'length + |
30 | TPhOptions.sigReg_Chan_Offs_3'length + |
31 | TPhOptions.sigReg_Chan_Offs_2'length + |
32 | TPhOptions.sigReg_Chan_Offs_1'length + |
33 | TPhOptions.sigReg_Words_Per_Ch'length + |
34 | TPhOptions.sigReg_LineOffs'length + |
35 | TPhOptions.sigSPI_Clk_Duration'length + |
36 | TPhOptions.sigSPI_Clk_Duty'length + |
37 | TPhOptions.sigSPI_DataSwitch'length + |
38 | TPhOptions.Bit16perLine'length + |
39 | |
40 | TPhOptions.sigEnableChannel'length + |
41 | TPhOptions.REG_Latch_Setup_Time'length + |
42 | TPhOptions.REG_Latch_End_Time'length + |
43 | TPhOptions.REG_Strobe_Setup_Time'length + |
44 | TPhOptions.REG_Burn_Prescaler'length + |
45 | TPhOptions.sigReg_HeadFill32'length |
46 | ;
|
1 | -- warnings: |
2 | # ** Warning: E:/SAUBER/lfe5um25_octavo/impl1/source/fpga_configP.vhd(38): (vcom-1260) Type mark (TPhOptions) cannot be prefix of selected name. |
3 | # ** Warning: E:/SAUBER/lfe5um25_octavo/impl1/source/fpga_configP.vhd(39): (vcom-1260) Type mark (TPhOptions) cannot be prefix of selected name. |
4 | # ** Warning: E:/SAUBER/lfe5um25_octavo/impl1/source/fpga_configP.vhd(40): (vcom-1260) Type mark (TPhOptions) cannot be prefix of selected name. |
5 | # ** Warning: E:/SAUBER/lfe5um25_octavo/impl1/source/fpga_configP.vhd(41): (vcom-1260) Type mark (TPhOptions) cannot be prefix of selected name. |
6 | # ** Warning: E:/SAUBER/lfe5um25_octavo/impl1/source/fpga_configP.vhd(42): (vcom-1260) Type mark (TPhOptions) cannot be prefix of selected name. |
7 | # ** Warning: E:/SAUBER/lfe5um25_octavo/impl1/source/fpga_configP.vhd(43): (vcom-1260) Type mark (TPhOptions) cannot be prefix of selected name. |
8 | # ** Warning: E:/SAUBER/lfe5um25_octavo/impl1/source/fpga_configP.vhd(44): (vcom-1260) Type mark (TPhOptions) cannot be prefix of selected name. |
9 | # ** Warning: E:/SAUBER/lfe5um25_octavo/impl1/source/fpga_configP.vhd(45): (vcom-1260) Type mark (TPhOptions) cannot be prefix of selected name. |
10 | # ** Warning: E:/SAUBER/lfe5um25_octavo/impl1/source/fpga_configP.vhd(46): (vcom-1260) Type mark (TPhOptions) cannot be prefix of selected name. |
11 | # ** Warning: E:/SAUBER/lfe5um25_octavo/impl1/source/fpga_configP.vhd(47): (vcom-1260) Type mark (TPhOptions) cannot be prefix of selected name. |
12 | # ** Warning: E:/SAUBER/lfe5um25_octavo/impl1/source/fpga_configP.vhd(48): (vcom-1260) Type mark (TPhOptions) cannot be prefix of selected name. |
13 | # ** Warning: E:/SAUBER/lfe5um25_octavo/impl1/source/fpga_configP.vhd(49): (vcom-1260) Type mark (TPhOptions) cannot be prefix of selected name. |
14 | # ** Warning: E:/SAUBER/lfe5um25_octavo/impl1/source/fpga_configP.vhd(51): (vcom-1260) Type mark (TPhOptions) cannot be prefix of selected name. |
15 | # ** Warning: E:/SAUBER/lfe5um25_octavo/impl1/source/fpga_configP.vhd(52): (vcom-1260) Type mark (TPhOptions) cannot be prefix of selected name. |
16 | # ** Warning: E:/SAUBER/lfe5um25_octavo/impl1/source/fpga_configP.vhd(53): (vcom-1260) Type mark (TPhOptions) cannot be prefix of selected name. |
17 | # ** Warning: E:/SAUBER/lfe5um25_octavo/impl1/source/fpga_configP.vhd(54): (vcom-1260) Type mark (TPhOptions) cannot be prefix of selected name. |
18 | # ** Warning: E:/SAUBER/lfe5um25_octavo/impl1/source/fpga_configP.vhd(55): (vcom-1260) Type mark (TPhOptions) cannot be prefix of selected name. |
19 | # ** Warning: E:/SAUBER/lfe5um25_octavo/impl1/source/fpga_configP.vhd(56): (vcom-1260) Type mark (TPhOptions) cannot be prefix of selected name. |