Velocity Reviews - Computer Hardware Reviews

Velocity Reviews > Newsgroups > Programming > VHDL > Syntax question

Reply
Thread Tools

Syntax question

 
 
David Ashley
Guest
Posts: n/a
 
      08-16-2006
Hi,

I'm studying opencores DDR controller here:

http://www.opencores.org/pdownloads.cgi/list/ddr_sdr

In file ddr_sdr.vhd here is an excerpt:

architecture behave of ddr_sdr is

-- User Interface
component user_if is
port (
rst_int_n : in std_logic; -- async reset, lo-active
sys_clk : in std_logic;

-- user interface
cmd : in std_logic_vector(U_CMD_WIDTH -1
downto 0); -- command: read, write, nop
cmd_vld : in std_logic;
addr : in std_logic_vector(U_ADDR_WIDTH-1
downto 0); -- ROW, BANK, COLUMN
busy_q : out std_logic; -- busy flag, when
active commands are ignored

-- Datenaustausch mit Controller
init_finished : in boolean;
new_cmd_q : out boolean;
new_cmd_ack : in boolean;
do_prech_q : out boolean; -- precharge followed by
activate
do_wait_q : out boolean; -- additional delay requested

cmd_q : buffer std_logic_vector(U_CMD_WIDTH -1
downto 0);
addr_q : out std_logic_vector(U_ADDR_WIDTH -1
downto 0)
);
end component;

-- Global Buffer BUFG
component bufg
port ( i : in std_ulogic;
o : out std_ulogic );
end component;
-- pragma translate_off
for all: bufg use entity unisim.bufg;
-- pragma translate_on

---CUT

My question is, in all the syntax rules I can find the
"for all: bufg use entity unisim.bufg;" seems like an error.
Why isn't it
for all: bufg
use entity unisim.bufg;
end for;

Where is the "end for;"?

Is this related to the "-- pragma translate_off"?

And more important, WTF is " -- pragma translate_off" supposed
to be doing?

What is all this VOODOO here?

Thanks!

-Dave
 
Reply With Quote
 
 
 
 
Andy Ray
Guest
Posts: n/a
 
      08-16-2006
>
> My question is, in all the syntax rules I can find the
> "for all: bufg use entity unisim.bufg;" seems like an error.
> Why isn't it
> for all: bufg
> use entity unisim.bufg;
> end for;
>
> Where is the "end for;"?
>



Good question. I would have expected it to be required as well. For
interest this is a configuration statement selecting bufg from the
xilinx unisim library, as opposed to whatever is in the work library (if
anything).


> Is this related to the "-- pragma translate_off"?
>



Yes and no - its not related to the syntax, but it is related to the
reason the statement's there at all.


> And more important, WTF is " -- pragma translate_off" supposed
> to be doing?
>



The idea of this pragma is that simulators will ignore it completely
while synthesizers will remove the code between
translate_off/translate_on. If you know C then its somewhat like

#ifdef SIMULATOR_ONLY
#endif//SIMULATOR_ONLY

Very useful construct that's equally easy to abuse. It's also worth
noting that specific pragma's are not part of the language spec so no
tool is required to implement them. This one seems to be well supported
though.

Cheers,

Andy.
 
Reply With Quote
 
 
 
 
David Ashley
Guest
Posts: n/a
 
      08-16-2006
Andy Ray wrote:
>...


> Very useful construct that's equally easy to abuse. It's also worth
> noting that specific pragma's are not part of the language spec so no
> tool is required to implement them. This one seems to be well supported
> though.


Andy,

Thanks, that all makes a lot of sense. So when I simulate this
with GHDL it'll ignore the --pragmas and will use the correct
model for the entity, but when I go use the xilinx tools to
synthesize, it'll pay attention to the pragmas and know to
cut out the section and instead use a bufg on the FPGA.

That really clears up a lot for me. Thanks again.

-Dave
 
Reply With Quote
 
 
 
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
Syntax Checker that's better than the normal syntax checker Jacob Grover Ruby 5 07-18-2008 05:07 AM
Syntax error? What syntax error? Assignment fo default values? Mark Richards Perl Misc 3 11-18-2007 05:01 PM
Syntax bug, in 1.8.5? return not (some expr) <-- syntax error vsreturn (not (some expr)) <-- fine Good Night Moon Ruby 9 07-25-2007 04:51 PM
[ANN] SqlStatement 1.0.0 - hide the syntax of SQL behind familiarruby syntax Ken Bloom Ruby 3 10-09-2006 06:46 PM
Syntax highligth with textile: Syntax+RedCloth ? gabriele renzi Ruby 2 12-31-2005 02:44 AM



Advertisments