![]() |
|
|
|||||||
![]() |
VHDL - Error --unconstrained record or array type is not supported |
|
|
Thread Tools | Search this Thread |
|
|
#1 |
|
I was trying to compile the VHDL code with generic (Width
In Quartus, I got the following error. Error (10427): VHDL aggregate error at GCD.vhd(49): OTHERS choice used in aggregate for unconstrained record or array type is not supported ----------------------------------------------------------------- library IEEE; use IEEE.STD_Logic_1164.all, IEEE.Numeric_STD.all; entity GCD is generic (Width integer, but all failed. port (Clock,Reset,Load: in std_logic; A,B: in unsigned(Width-1 downto 0); Done: out std_logic; Y: out unsigned(Width-1 downto 0)); end entity GCD; architecture RTL of GCD is signal A_New,A_Hold,B_Hold: unsigned(Width-1 downto 0); signal A_lessthan_B: std_logic; begin ---------------------------------------------------- -- Load 2 input registers and ensure B_Hold < A_Hold --------------------------------------------------- LOAD_SWAP: process (Clock) begin if rising_edge(Clock) then if (Reset = '0') then A_Hold <= (others => '0'); B_Hold <= (others => '0'); elsif (Load = '1') then A_Hold <= A; B_Hold <= B; elsif (A_lessthan_B = '1') then A_Hold <= B_Hold; B_Hold <= A_New; else A_Hold <= A_New; end if; end if; end process LOAD_SWAP; SUBTRACT_TEST: process (A_Hold, B_Hold) begin ------------------------------------------------------- -- Subtract B_Hold from A_Hold if A_Hold >= B_Hold ------------------------------------------------------ if (A_Hold >= B_Hold) then A_lessthan_B <= '0'; A_New <= A_Hold - B_Hold; else A_lessthan_B <= '1'; A_New <= A_Hold; end if; ------------------------------------------------- -- Greatest common divisor found if B_Hold = 0 ------------------------------------------------- if (B_Hold = (others => '0')) then -- here is the error B_Hold = (others => '0') Done <= '1'; Y <= A_Hold; else Done <= '0'; Y <= (others => '0'); end if; end process SUBTRACT_TEST; end architecture RTL; ------------------------------------------------------------------------------- I also googled some topic about it, is it true that when using generics, B_Hold = (others => '0') OTHERS choice used in aggregate for unconstrained record or array type is not supported? Zheyu.Gao@googlemail.com |
|
|
|
|
#2 |
|
Member
Join Date: Jan 2009
Posts: 31
|
Try this instead:
Code:
joris |
|
|
|
|
|
#3 |
|
Posts: n/a
|
> Zheyu....@googlemail.com wrote: > > I was trying to compile the VHDL code with generic (Width > > > > > In Quartus, I got the following error. > > Error (10427): VHDL aggregate error at GCD.vhd(49): OTHERS choice used > > in aggregate for unconstrained record or array type is not supported > > <snip> > > > ----------------------------------------------------------------- > > library IEEE; > > use IEEE.STD_Logic_1164.all, IEEE.Numeric_STD.all; > > entity GCD is > > generic (Width > > integer, but all failed. > > port (Clock,Reset,Load: in std_logic; > > * *A,B: * in unsigned(Width-1 downto 0); > > * *Done: *out std_logic; > > * *Y: * * out unsigned(Width-1 downto 0)); > > end entity GCD; > > architecture RTL of GCD is > > * *signal A_New,A_Hold,B_Hold: unsigned(Width-1 downto 0); > > * *signal A_lessthan_B: std_logic; > > begin > > <snip> > > > * *if (B_Hold = (others => '0')) then *-- here is the error B_Hold = > > (others => '0') > > ------------------------------------------------------------------------------- > > I also googled some topic about it, is it true that when using > > generics, B_Hold = (others => '0') OTHERS choice used in aggregate for > > unconstrained record or array type is not supported? > Since B_hold is unsigned, you can take advantage of the overloading and compare to an integer: if B_hold = 0 then Cheers, Jim SynthWorks VHDL Training http://www.synthworks.com JimLewis |
|
![]() |
| Thread Tools | Search this Thread |
|
|
Similar Threads
|
||||
| Thread | Thread Starter | Forum | Replies | Last Post |
| VHDL and EDK: Custom IP core containing an array as a port using EDK | allsey_1987 | Hardware | 0 | 10-27-2009 02:26 PM |
| SuperVideoCap work as a broadcast capture and screen capture and record tool. | hely0123 | Media | 0 | 10-30-2007 08:59 AM |
| VHS to DVD stand-alone boxes - how to record 6 hr VHS tapes ? | - Bobb - | DVD Video | 16 | 01-04-2007 09:21 PM |
| First Optical Disc Recorder Able to Record and Playback Blu-Ray, DVD & CD Formats. (NEWS) | Allan | DVD Video | 0 | 02-15-2005 01:06 PM |
| BREAKING: Kerry leading in key states, PA, FL, OH, WI, MI .... | Official Election Guide 2004 | DVD Video | 89 | 11-08-2004 03:40 PM |