![]() |
|
|
|||||||
![]() |
VHDL - Unconstrained ports for synthesis |
|
|
Thread Tools | Search this Thread |
|
|
#1 |
|
Hi all,
I am having a component Multiplier with unconstrained ports. But this is not my top_level_entity and ports are implicity constrained while instanciating this component. It simulates well but while synthezing Quartus says that ports must be constrained. I think that Quartus could infer it from instanciation syntax. Is there any solution to get around it Thanks. -- Mohammed A Khader. Mohammed A khader |
|
|
|
|
#2 |
|
Posts: n/a
|
Hello,
Can you be more specific as to the exact message that Quartus gives? You can cut ans paste the Quartus message in the reply. Also can you describe what is meant by "implictly constrainedwhile instanciating" in the post? Subroto Datta Altera Corp. "Mohammed A khader" <> wrote in message news: oups.com... > Hi all, > > I am having a component Multiplier with unconstrained ports. But this > is not my top_level_entity and ports are implicity constrained while > instanciating this component. > > It simulates well but while synthezing Quartus says that ports must be > constrained. I think that Quartus could infer it from instanciation > syntax. Is there any solution to get around it > > Thanks. > > -- Mohammed A Khader. > Subroto Datta |
|
|
|
#3 |
|
Posts: n/a
|
Hi,
-- Error messages are...... Error: VHDL Entity Declaration error at Multiplier_Synth.Vhd(26): ports must be constrained Error: VHDL Entity Declaration error at Multiplier_Synth.Vhd(27): ports must be constrained Error: VHDL Entity Declaration error at Multiplier_Synth.Vhd(2 must be constrained Error: Can't elaborate user hierarchy "Core:Core_Map|Datapath Error: Quartus II Analysis & Synthesis was unsuccessful. 4 errors, 0 warnings Error: Processing ended: Wed Apr 20 16:33:52 2005 Error: Elapsed time: 00:00:05 -- My Multiplier component is ......... entity Multiplier_Synth is port( Op1 : in signed; -- Operator 1 Op2 : in signed; -- Operator 2 Mult_Out : out signed -- Multiplication Result ); end entity Multiplier_Synth; architecture Multiplier_Synth_Arch of Multiplier_Synth is begin Mult_Out <= Op1 * Op2; end architecture Multiplier_Synth_Arch; -- And it has been instantiated in an entity called Datapath_Map as ....... signal Mux1_Out : WORD20; -- Output of Mux1 signal Mux2_Out : WORD; -- Output of Mux2 signal Mult_Out : signed(39 downto 0); -- Multiplier Output Multiplier_Map : entity work.Multiplier_Synth(Multiplier_Synth_Arch) port map( Op1 => Mux1_Out, Op2 => Mux2_Out, Mult_Out => Mult_Out ); Mux1_Out , Mux2_Out and Mult_Out are constrained signals . Hence Op1,Op2,Mult_Out implicitly can be constrained by bit length of 20,20,40 respectively. Thanks.. -- Mohammed A Khader. Mohammed A Khader |
|
|
|
#4 |
|
Posts: n/a
|
Mohammed A Khader wrote:
> Error: VHDL Entity Declaration error at Multiplier_Synth.Vhd(26): > ports must be constrained > -- My Multiplier component is ......... > entity Multiplier_Synth is > port( > Op1 : in signed; -- Operator 1 > Op2 : in signed; -- Operator 2 > Mult_Out : out signed -- Multiplication Result > ); > end entity Multiplier_Synth; Use generic parameters - e.g.: entity Multiplier_Synth is generic( width : integer:=16 ); port( Op1 : in signed(width-1 downto 0); Op2 : in signed(width-1 downto 0); Mult_Out : out signed(width*2-1 downto 0) ); end entity Multiplier_Synth; Generic parameters are overridden, if a generic mapping is used during instantiation. (Otherwise the given default value is used.) Because you have to define the bitwidth somewhere in your design, it does not matter where and how. Therefore Generic paramters are suitable. You can feed them from the very bottom to the top entity. Ralf Ralf Hildebrandt |
|
|
|
#5 |
|
Posts: n/a
|
Hello Mohammed,
We will be adding support for unconstrained entity ports in 5.1, due out later this year (we need to get 5.0 out first interim please use the generic approach suggested by Ralf. Hope this helps, Subroto Datta Altera Corp. Subroto Datta |
|
|
|
#6 |
|
Posts: n/a
|
Mohammed A khader wrote:
> Hi all, > > I am having a component Multiplier with unconstrained ports. But this >is not my top_level_entity and ports are implicity constrained while >instanciating this component. > > It simulates well but while synthezing Quartus says that ports must be >constrained. I think that Quartus could infer it from instanciation >syntax. Is there any solution to get around it > >Thanks. > >-- Mohammed A Khader. > > > I do not believe the Quartus compiler supports unconstrained ports. Either use generics to size the port, or use a synthesizer such as synplify that does support unconstrained ports. -- --Ray Andraka, P.E. President, the Andraka Consulting Group, Inc. 401/884-7930 Fax 401/884-7950 http://www.andraka.com "They that give up essential liberty to obtain a little temporary safety deserve neither liberty nor safety." -Benjamin Franklin, 1759 Ray Andraka |
|
![]() |
| Thread Tools | Search this Thread |
|
|
Similar Threads
|
||||
| Thread | Thread Starter | Forum | Replies | Last Post |
| Ports & Bios Problem | gullab2 | General Help Related Topics | 0 | 09-19-2006 01:14 PM |
| Re: USB issue ... some USB 2 ports working only in USB 1 mode | hungsolo2005@yahoo.com | A+ Certification | 0 | 06-14-2006 08:26 PM |
| can I go from vhs to stand alone dvd recorder using in/out ports | JMC | DVD Video | 5 | 04-28-2006 03:48 AM |
| Blocking ports | Nell | A+ Certification | 2 | 09-22-2005 12:00 AM |
| alot of open ports | leno bob | A+ Certification | 8 | 03-27-2005 11:44 PM |