24.04.2013 Views

Verification of Parameterised FPGA Circuit Descriptions with Layout ...

Verification of Parameterised FPGA Circuit Descriptions with Layout ...

Verification of Parameterised FPGA Circuit Descriptions with Layout ...

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Appendix A<br />

Quartz Language Grammar<br />

This appendix contains the grammar for the Quartz language <strong>with</strong> placement constructs, in<br />

extended Backus-Naur form (EBNF).<br />

Terminals are set in typewriter font, while non-terminals are set between angled brackets.<br />

Round brackets are used to indicate grouping.<br />

The asterisk symbol (*) indicates zero-or-more repetition. The plus symbol (+) indicates<br />

once-or-more repetition. The question mark symbol (?) indicates zero-or-once repetition.<br />

〈design〉 ::= 〈blockdef 〉*<br />

〈blockdef 〉 ::= block 〈id〉 〈domain〉 ~ 〈range〉 { 〈dec〉* 〈stmt〉* }<br />

〈domain〉 ::= 〈io〉 〈io〉*<br />

〈range〉 ::= 〈io〉<br />

| block 〈id〉 〈domain〉 ~ 〈range〉 -> 〈singlestmt〉<br />

〈io〉 ::= ( 〈io tuple elt〉 (, 〈io tuple elt〉 )* )<br />

〈io tuple elt〉 ::= 〈dir〉? 〈basictype〉 〈id〉 〈vecindex 〉*<br />

〈dir〉 ::= in<br />

| 〈dir〉? 〈block〉 〈id〉 〈blocksig〉 〈vecindex 〉*<br />

| ( 〈io tuple elt〉 (, 〈io tuple elt〉 )* )<br />

| out<br />

184

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!