background image

18

LatticeMico

8

 Microcontroller

Lattice Semiconductor

User’s Guide

• Verilog initialization file (included in design before synthesis)

In addition to these outputs, the Assembler can also generate an assembler listing file.

Command Line

<executable filename> -option1 -option2 ... <input filename>

Command Line Options

Option

Comment

-o <filename>

Fully qualified name of the output file.

-s <Program Rom Size>

Default 512 bytes

-l

Generate listing file. The listing file is generated in the same directory as the
source with the extension .lst.

-vx 

Generate output in hexadecimal (default)

-vb 

Generate output in binary

-ve

Generate output in Verilog “INIT” format

-?

Help message

Instructions

The Assembler supports all instructions as described in the Instruction Set section.

Pseudo-Ops

The Assembler supports the following pseudo-ops:

Option

Comment

nop

Expanded by the Assembler to mov R0,R0.  An instruction without side effects.

Labels

Label definitions are any character sequences ending in a ‘:’. No other instruction or Assembler directives are
allowed in the same line as a label definition.

The Assembler allows both forward and backward references to a label (i.e. it is legal to reference a label before it
is defined). Both references in the following example are valid.

BackLabel:

...
...
b

BackLabel

...
...
b

ForwardLabel

...
...

ForwardLabel:

Comments

The character ‘#’ is used as the start of a comment. Everything following the comment character until a new line is
ignored by the Assembler.

Constants

The assembler accepts constants in various formats.

Hexadecimal values

: Hexadecimal constants must be prefixed with “0x” or “0X”. (e.g. 0xFF, 0x12, and 0XAB are 

all valid hexadecimal constants).

Summary of Contents for LatticeMico8

Page 1: ...ter medical industrial and automotive The core consumes minimal device resources less than 200 Look Up Tables LUTs in the smallest configuration while maintaining a broad feature set Features 8 bit Da...

Page 2: ...ar interrupt sti set interrupt When an interrupt is received the address of the next instruc tion is pushed into the call stack and the microcontroller continues execution from the interrupt vector ad...

Page 3: ...ite In the case of the exporti instruction the ext_addr signal is driven from the register file otherwise for the export instruction it is driven directly from the instruction Figure 3 Microcontroller...

Page 4: ...ith the carry out from the addition The zero flag is set to 1 if all the bits of the result are 0 ADDIC Rd CC Rd Rd CCCCCCCC Carry Flag add register constant and carry flag The carry flag is updated w...

Page 5: ...o 1 if all the bits of the result are 0 SUBIC Rd C Rd Rd CCCCCCCC Carry Flag subtract constant with carry from register The carry flag is set to 1 if the result is negative The zero flag is set to 1 i...

Page 6: ...CCC bitwise AND register with constant The zero flag is set to 1 if all the bits of the result are 0 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 0 1 0 0 0 Rd Rd Rd Rd Rd Rb Rb Rb Rb Rb 0 0 0 CY Flag U...

Page 7: ...CC bitwise XOR register with constant The zero flag is set to 1 if all the bits of the result are 0 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 0 1 1 0 0 Rd Rd Rd Rd Rd Rb Rb Rb Rb Rb 0 0 0 CY Flag U...

Page 8: ...eration is not written back The zero flag is set to 1 if all the bits of the result are 0 TESTI Rd CC Perform a bitwise AND between Rd and Constant update the zero flag The result of the AND operation...

Page 9: ...to the carry flag The zero flag is set to 1 if all the bits of the result are 0 ROL Rd Rb Rotate left Register B is shifted left by one bit The highest order bit is shifted into the lowest order bit T...

Page 10: ...y Flag 1 Set carry flag CLRZ Zero Flag 0 Clear zero flag 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 1 0 1 0 0 Rd Rd Rd Rd Rd Rb Rb Rb Rb Rb 0 1 1 CY Flag Updated Zero Flag Updated Yes Yes 17 16 15 14...

Page 11: ...bel from the current PC If zero flag is 0 then execution continues with the following instruction The offset can be 512 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 1 1...

Page 12: ...f Label Else PC PC 1 Branch if not carry If carry flag is not set the PC is incremented by the signed offset of the label from the current PC If carry flag is set then execution continues with the fol...

Page 13: ...by the signed offset of the label from the current PC If the zero flag is set then execu tion continues from the following instruction CALLC Label If Carry Flag 1 then Push PC 1 into Call Stack PC PC...

Page 14: ...is pushed into the call stack and the PC is incremented by the signed offset of the label from the current PC RET PC Top of Call Stack Pop Call Stack Unconditional return PC is set to the value on th...

Page 15: ...RT Rd Port Port Value Port Rd Output value of Register D to Port Port can be 0 31 EXPORTI Rd Rb Port Value Rb Rd Output value of Register D to Port designated by Register B Port can be 0 255 17 16 15...

Page 16: ...nated by constant SS The location address can be 0 31 SSPI Rd Rb Scratch Pad Rb Rd Store into scratch pad memory indirect Store value of register D into scratch pad memory location designated by regis...

Page 17: ...external scratch pad memory The ext_dout is used to write data into the external memory The address bus ext_addr is also shared Assembler and Instruction Set Simulator The software tools for the Latti...

Page 18: ...in the Instruction Set section Pseudo Ops The Assembler supports the following pseudo ops Option Comment nop Expanded by the Assembler to mov R0 R0 An instruction without side effects Labels Label de...

Page 19: ...er will terminate with an error if the org directive is given a location which is less than the current local counter value equ This directive can be used to assign symbolic names to constants The syn...

Page 20: ...ails ix Program file is in hexadecimal format default This is the file generated by the Assembler with the vx options default ib Program file is in binary format This is the file generated by the Asse...

Page 21: ...following commands should be used in the Unix and Windows environments Unix and Cygwin Environments gcc o isp8sim isp8sim c Windows Environment cl o isp8sim_win isp8sim c Example To display the featu...

Page 22: ...e of program mov r7 r5 mov r5 r6 andi r5 0x0f masking r5 to get the speed mov r25 r5 cmpi r7 0x10 bz phase2 cmpi r7 0x20 bz phase2 b start phase2 cmpi r25 0x01 bz phase3 cmpi r25 0x02 bz phase3 cmpi r...

Page 23: ...4 LCMX01200C 4 214 71 109 78 6 LCMXO1200C 4 LFE2 50E 5 220 71 132 90 7 LFE2 50E 5 2 32 Regs 16 Int SP No Ext SP LFXP3C 4 LFEC3E 4 247 71 138 62 4 LFXP3C 4 68 8 LFEC3E 4 LCMXO1200C 4 248 71 125 71 9 L...

Reviews: