Sign In

Don't have a Xilinx account yet?

  • Choose to receive important news and product information
  • Gain access to special content
  • Personalize your web experience on Xilinx.com

Create Account

Username

Password

Forgot your password?
XClose Panel
Xilinx Home
Reply
Contributor
alexium
Posts: 65
Registered: ‎04-22-2010
0

Small problem simulating RAMB16BWE (post-sinthesys model)

[ Edited ]

Good time of day!

 

I decided to put aside the post-PAR model for a while, and try post-sinthesys.

"Check syntax" gives me an error: "Formal port/generic <\ADDRA{13}\> is not declared in <ramb16bwe>". And the second (and last) error is: "Formal <addra> has no actual or default value.". I don't understand how can those 2 errors combine at all...

I tried reading Spartan-3A FPGA User Guide, but seems like RAMB16BWE is not intended for manual instantiation, so there is no detailed specification of it's ports and generics.

Any ideas?

 

Thanks in advance.

 

P.S. My BRAM is VHDL source code, not a core.

Expert Contributor
eteam00
Posts: 7,505
Registered: ‎07-21-2009

Re: Small problem simulating RAMB16BWE (post-sinthesys model)

[ Edited ]

"Check syntax" gives me an error: "Formal port/generic <\ADDRA{13}\> is not declared in <ramb16bwe>". And the second (and last) error is: "Formal <addra> has no actual or default value."

Sounds like you have a problem in the code which generates ADDRA.

You should post your code for the module which contains the RAMB16BWE and the code which generates ADDRA.

I don't understand how can those 2 errors combine at all...

The both relate to the generation of ADDRA.

I tried reading Spartan-3A FPGA User Guide, but seems like RAMB16BWE is not intended for manual instantiation,

It most certainly is intended for manual instantiation.

so there is no detailed specification of it's ports and generics.

This is from the language templates (in ISE, EDIT > Language Templates).

Then VHDL > Device Primitive Instantiation > Spartan-3A > RAM/ROM > Block RAM > 16k...(RAMB16BWE)

 

   -- RAMB16BWE: 16k+2k Parity Paramatizable, byte-wide enable BlockRAM
   --            Spartan-3A
   -- Xilinx HDL Language Template, version 12.4

   RAMB16BWE_inst : RAMB16BWE
   generic map (
      DATA_WIDTH_A => 0, -- Valid values are 1, 2, 3, 4, 8, 18, or 36
      DATA_WIDTH_B => 0, -- Valid values are 1, 2, 3, 4, 8, 18, or 36
      INIT_A => X"000000000", --  Initial values on A output port
      INIT_B => X"000000000", --  Initial values on B output port
      SIM_COLLISION_CHECK => "ALL", -- Collision check enable "ALL", "WARNING_ONLY", 
                                    -- "GENERATE_X_ONLY" or "NONE" 
      SRVAL_A => X"000000000", --  Port A output value upon SSR assertion
      SRVAL_B => X"000000000", --  Port B output value upon SSR assertion
      WRITE_MODE_A => "WRITE_FIRST", --  WRITE_FIRST, READ_FIRST or NO_CHANGE
      WRITE_MODE_B => "WRITE_FIRST", --  WRITE_FIRST, READ_FIRST or NO_CHANGE
      -- The following INIT_xx declarations specify the initial
-- < 73 lines of init code deleted  -- Bob Elkind >
   port map (
      DOA => DOA,      -- 32-bit A port Data Output
      DOB => DOB,      -- 32-bit B port Data Output
      DOPA => DOPA,    -- 4-bit  A port Parity Output
      DOPB => DOPB,    -- 4-bit  B port Parity Output
      ADDRA => ADDRA,  -- 14-bit A port Address Input
      ADDRB => ADDRB,  -- 14-bit B port Address Input
      CLKA => CLKA,    -- Port A Clock
      CLKB => CLKB,    -- Port B Clock
      DIA => DIA,      -- 32-bit A port Data Input
      DIB => DIB,      -- 32-bit B port Data Input
      DIPA => DIPA,    -- 4-bit  A port parity Input
      DIPB => DIPB,    -- 4-bit  B port parity Input
      ENA => ENA,      -- 1-bit  A port Enable Input
      ENB => ENB,      -- 1-bit  B port Enable Input
      SSRA => SSRA,    -- 1-bit  A port Synchronous Set/Reset Input
      SSRB => SSRB,    -- 1-bit  B port Synchronous Set/Reset Input
      WEA => WEA,      -- 4-bit  A port Write Enable Input
      WEB => WEB       -- 4-bit  B port Write Enable Input
   );

-- Bob Elkind

SIGNATURE:
README for newbies is here: http://forums.xilinx.com/t5/New-Users-Forum/README-first-Help-for-new-users/td-p/219369

Summary:
1. Read the manual or user guide. Have you read the manual? Can you find the manual?
2. Search the forums (and search the web) for similar topics.
3. Do not post the same question on multiple forums.
4. Do not post a new topic or question on someone else's thread, start a new thread!
5. Students: Copying code is not the same as learning to design.
6 "It does not work" is not a question which can be answered. Provide useful details (with webpage, datasheet links, please).
7. You are not charged extra fees for comments in your code.
8. I am not paid for forum posts. If I write a good post, then I have been good for nothing.
Contributor
alexium
Posts: 65
Registered: ‎04-22-2010
0

Re: Small problem simulating RAMB16BWE (post-sinthesys model)

[ Edited ]

That's what happens when you look through the manual instead of actually reading it. I missed the part about language template. Thank you.

The problem is: my RTL code is OK. It simulates and it works (in a way) in hardware. And I can't make heads or tails out of post-sinthesys model code (and I don't think I'm even supposed to).

By saying I should post my code for the module which contains the RAMB16BWE and the code which generates ADDRA, do you mean original RTL code?

Expert Contributor
eteam00
Posts: 7,505
Registered: ‎07-21-2009
0

Re: Small problem simulating RAMB16BWE (post-sinthesys model)

What tool generated the error messages?  What code did you "feed" to that tool?

 

-- Bob Elkind

SIGNATURE:
README for newbies is here: http://forums.xilinx.com/t5/New-Users-Forum/README-first-Help-for-new-users/td-p/219369

Summary:
1. Read the manual or user guide. Have you read the manual? Can you find the manual?
2. Search the forums (and search the web) for similar topics.
3. Do not post the same question on multiple forums.
4. Do not post a new topic or question on someone else's thread, start a new thread!
5. Students: Copying code is not the same as learning to design.
6 "It does not work" is not a question which can be answered. Provide useful details (with webpage, datasheet links, please).
7. You are not charged extra fees for comments in your code.
8. I am not paid for forum posts. If I write a good post, then I have been good for nothing.
Contributor
alexium
Posts: 65
Registered: ‎04-22-2010
0

Re: Small problem simulating RAMB16BWE (post-sinthesys model)

HDLCompiler generated the message. The code I "fed" is a primitive testbench with UUT being post-sinthesys model (7400 lines of code).

Expert Contributor
eteam00
Posts: 7,505
Registered: ‎07-21-2009
0

Re: Small problem simulating RAMB16BWE (post-sinthesys model)

HDLCompiler generated the message. The code I "fed" is a primitive testbench with UUT being post-sinthesys model (7400 lines of code).

So you aren't using ISE/XST for synthesis.  Does your code synth, place, & route OK with ISE?  If so, then you seem to have a problem specifically between your code and HDLCompiler ?

 

Sorry, I'm not familiar with HDLCompiler.

 

Did you take my advice on the beer therapy?

 

-- Bob Elkind

SIGNATURE:
README for newbies is here: http://forums.xilinx.com/t5/New-Users-Forum/README-first-Help-for-new-users/td-p/219369

Summary:
1. Read the manual or user guide. Have you read the manual? Can you find the manual?
2. Search the forums (and search the web) for similar topics.
3. Do not post the same question on multiple forums.
4. Do not post a new topic or question on someone else's thread, start a new thread!
5. Students: Copying code is not the same as learning to design.
6 "It does not work" is not a question which can be answered. Provide useful details (with webpage, datasheet links, please).
7. You are not charged extra fees for comments in your code.
8. I am not paid for forum posts. If I write a good post, then I have been good for nothing.
Contributor
alexium
Posts: 65
Registered: ‎04-22-2010
0

Re: Small problem simulating RAMB16BWE (post-sinthesys model)

[ Edited ]

 


eteam00 wrote:

HDLCompiler generated the message. The code I "fed" is a primitive testbench with UUT being post-sinthesys model (7400 lines of code).

So you aren't using ISE/XST for synthesis.  Does your code synth, place, & route OK with ISE?  If so, then you seem to have a problem specifically between your code and HDLCompiler ?

 

Sorry, I'm not familiar with HDLCompiler.

 

Did you take my advice on the beer therapy?

 

-- Bob Elkind


I'm sorry,  my description of the situation wasn't clear. I do use XST for sinthesys. Everything sinthesyses, places, routes and even works in HW (with problems, as you may remember, but that's not the point here). I generated post-sinth model with XST. I then instanciated this model in my testbench, switched into "Simulation" view and performed "check  syntax" on a TB. That's where HDLCompiler runs and gives me those errors. My guess is HDLCompiler is a tool that is used by both XST and Isim as a first stage of HDL files processing. It is the tool that shows you syntax errors, and is used when you click "Check syntax".

 

As for your advice about beer therapy - I took it in my own way (I don't drink alcohol, but I relaxed drinking tea and watching my favourite TV series). I also took good sleep, but I can't feel any improvements in my understanding of the problem I'm facing. However, I'm feeling rational, mentally stable and able to reason adequately.

 

Expert Contributor
eteam00
Posts: 7,505
Registered: ‎07-21-2009
0

Re: Small problem simulating RAMB16BWE (post-sinthesys model)

I then instanciated this model in my testbench, switched into "Simulation" view and performed "check  syntax" on a TB. That's where HDLCompiler runs and gives me those errors.

That certainly helps narrow down the problem a bit, and the error messages seem quite specific.

However, I'm feeling rational, mentally stable and able to reason adequately.

You're doing better than most of us!

 

-- Bob Elkind

SIGNATURE:
README for newbies is here: http://forums.xilinx.com/t5/New-Users-Forum/README-first-Help-for-new-users/td-p/219369

Summary:
1. Read the manual or user guide. Have you read the manual? Can you find the manual?
2. Search the forums (and search the web) for similar topics.
3. Do not post the same question on multiple forums.
4. Do not post a new topic or question on someone else's thread, start a new thread!
5. Students: Copying code is not the same as learning to design.
6 "It does not work" is not a question which can be answered. Provide useful details (with webpage, datasheet links, please).
7. You are not charged extra fees for comments in your code.
8. I am not paid for forum posts. If I write a good post, then I have been good for nothing.
Contributor
alexium
Posts: 65
Registered: ‎04-22-2010
0

Re: Small problem simulating RAMB16BWE (post-sinthesys model)

 


eteam00 wrote:
That certainly helps narrow down the problem a bit, and the error messages seem quite specific. 

 


Yes it is. But since my original RTL code is OK, and it's next to impossible to undersatnd something in those 7000 lines of post-sinthesys code, I have no idea how to fix the problem.

 

 


eteam00 wrote:

You're doing better than most of us!

 


No, I'm just feeling better, there's a major difference between feeling and doing : )