■ FIGURE 2. Selecting the
FPGA device for the SCAM
implementation in ispLEVER
Project Navigator.
Options, and Title.
• Declarations, including Pin,
Constant, Node, Sets, States,
and Library.
• Logic Descriptions, including
Equations, Truth-table, and
State_diagram.
• Test Vectors: Test_vectors.
• End.
As we will see, most of
those ABEL elements are used
in describing the top level of the
SCAM package.
THE ABEL TOP MODULE
The top of the SCAM design
■ LISTING 1. ABEL Top Module of
SCAM Package.
hierarchy is an ABEL module (see
Listing 1) in which I replicate the
building block of the SCAM, namely
the CAM word. The ABEL module
appears in the ispLEVER Project
Navigator window of Figure 1,
superseding the schematic
■ FIGURE 3.
SCAM Package
Symbol generated by ispLEVER
Project Navigator.
modules of the building blocks of
the SCAM. The ABEL module
starts with a declaration of the next
LISTING 1
1. MODULE SCAM_Package
2. TITLE ‘SCAM Block Package ABL’
3. DECLARATIONS
4. cam_element INTERFACE
(clr,clk,ST,SET,SD,RESULTi,READi_ 9_,READi_ 8_,READi_ 7_,READi_ 6_,READi_ 5_,READi_ 4_,READi_ 3_,READi_2_,READi_1_,READi_0
_,QFi,QBi,NSi,MODE,LPW,LPE,LNW,LNE,FSETi,D_ 9_,D_ 8_,D_ 7_,D_ 6_,D_ 5_,D_ 4_,D_ 3_,D_2_,D_1_,D_0_,Cn_ 9_,Cn_ 8_,Cn_ 7_,Cn_ 6_,
Cn_ 5_,Cn_ 4_,Cn_ 3_,Cn_2_,Cn_1_,Cn_0_,C_ 9_,C_ 8_,C_ 7_,C_ 6_,C_ 5_,C_ 4_,C_ 3_,C_2_,C_1_,C_0_,BSETi ->
RESULTo,READo_ 9_,READo_ 8_,READo_ 7_,READo_ 6_,READo_ 5_,READo_ 4_,READo_ 3_,READo_2_,READo_1_,READo_0_,QFo,QBo,
NSo,FSETo,BSETo);
5. complete_control INTERFACE
(clr,clk,SM,SC,READi_ 9_,READi_ 8_,READi_ 7_,READi_ 6_,READi_ 5_,READi_ 4_,READi_ 3_,READi_2_,READi_1_,READi_0_,Di_ 9_,Di_ 8
_,Di_ 7_,Di_ 6_,Di_ 5_,Di_ 4_,Di_ 3_,Di_2_,Di_1_,Di_0_,CMP ->
READo_ 9_,READo_ 8_,READo_ 7_,READo_ 6_,READo_ 5_,READo_ 4_,READo_ 3_,READo_2_,READo_1_,READo_0_,Cn_ 9_,Cn_ 8_,Cn_ 7
_,Cn_ 6_,Cn_ 5_,Cn_ 4_,Cn_ 3_,Cn_2_,Cn_1_,Cn_0_,C_ 9_,C_ 8_,C_ 7_,C_ 6_,C_ 5_,C_ 4_,C_ 3_,C_2_,C_1_,C_0_);
6. CE macro (x)
7. { @expr {CE}?x; };
8. “declare 1024 associative words in the SCAM
9. @const rep = 1024;
10. @const x = 1;
11. @repeat rep
12. { CE(x-1) FUNCTIONAL_BLOCK cam_element;
13. @const x = x + 1; };
14. CC FUNCTIONAL_BLOCK complete_control;
15. “input pins of first element
16. CLKi, CLRi PIN;
17. SMi, SCi, SDi, STi PIN;
18. LNEi, LNWi PIN;
19. LPEi, LPWi PIN;
20. MODEi, SETi, CMPi PIN;
21. FSETii PIN;
February 2006 57