Components/IP/Command decoder
|
This IP can be found on the EDA Repository: svn: https://repos.hevs.ch/svn/eda/
IP
The block receives a command built out of characters ending with
a CR (0Dh)
or a LF (0Ah)
.
A number of commands stored in a ROM are compared to the incoming line.
A the end of the reception, the output(s) matching with the incoming commands emit a pulse lasting one clock period.
The esc (1Bh)
character in the ROM matches any character in the command.
The CR (0Dh)
character in the ROM ends the matching search, even if the command continues,
e.g. with further parameters.
The LF (0Ah)
character in the ROM ends the matching search and directly issues a command pulse,
without awaiting the end of the command line.
Generics
The generic characterBitNb
specifies the number of bits of the charIn
input.
The generic commandNb
specifies the number of commands looked for in the ROM
and, as such, the number of bits of the command
output.
The generic commandLength
specifies the maximal length of each command.
Together with commandNb
, they define the required size of command ROM.
The generic commandsFile
gives the specification of the ASCII file storing the content of the ROM
and, as such, of the commands.
The generic caseSensitive
is quite self explanatory.
The generic valueBitNb
specifies the number of bits of the hexadecimal values given in the command line.
This corresponds to the number of bits of the value
output.
Script
The script commandDecoder.py
generates the ROM data file.
Obviously, the variables command_bit_nb
and command_length
have to match the generics of the VHDL entity.
Examples
With the command list :
commands = [ 'version', 'relays\r', 'sampling\r', "memRead\r", "memWrite\r" ]
Unknown command
The command Hello world
will pulse the endOfCommand
signal, but with none of the command
bits active.
Bare command
The command version
will pulse the endOfCommand
signal with bit command(1)
active.
Command with a parameter
The command sampling 12C0
will pulse the endOfCommand
signal with bit command(3)
active
and pulse valueEn
with value
equal to 12C0h.