[Cryptech Tech] Alpha board BOM and PCB design requirements

Павел Шатов meisterpaul1 at yandex.ru
Wed Mar 11 08:42:03 UTC 2015


On 10.03.2015 12:18, Fredrik Thulin wrote:
> On Monday, March 09, 2015 10:25:19 PM Павел Шатов wrote:
> ...
>> 1. I can't understand what configuration mode you want to use: Master or
>> Slave? Where will the bitstream be stored?
>
> (I don't know what you mean with Master and Slave here, because of my own FPGA
> ignorance I'm sure)
>
> What we've talked about for the long term is to have the bitstream in the FPGA
> config memory.
>
> dol@ always says it shouldn't be writable at all (in production) but I'm sure
> we all agree that it should at least require physical access to write it, such
> as installing a write-enable jumper (and the tamper boundary is broken so the
> MKM is naturally deleted at this stage).
>
> For the Alpha board, we think it will be convenient to be able to download a
> FPGA bitstream into the FPGA from the ARM (funny, I would call it upload but
> JS says it's download ;)). To be able to sorta upgrade the protection of the
> Alpha board to the long term variant, we want this Alpha board feature to
> require a separate enable-jumper, that can then be removed if the Alpha board
> were to be used in something more than strict development.
>
> Makes sense?

First of all, FPGAs have volatile internal configuration latches. FPGA 
must be programmed every time it is powered up. When in Slave mode, FPGA 
just sits and waits for someone to load bitstream into it and release 
reset. When in Master mode, FPGA actively tries to read bitstream from 
external memory and start working by itself. Mode can be switched by 
applying either 0 or 1 to dedicated mode pins of an FPGA. Novena 
actually supports both modes. By default it places on-board FPGA in 
Slave mode (you have to run configure script to program an FPGA). Novena 
also has dedicated EEPROM memory for FPGA bitstream, you can program 
this memory and then insert a jumper to make FPGA automatically load 
this bitstream upon power up.

You can find more information here
http://www.xilinx.com/support/documentation/user_guides/ug470_7Series_Config.pdf

If Basil wants to physically disable writing to an FPGA, then you need 
Master mode and a separate EEPROM for bitstream. I can suggest M25P128 
from Micron for example (Artix-7 has 77 Mbits of config memory, so 128 
Mbits memory is required at least). This memory has a dedicated write 
protection pin, that can be connected to a jumper.

>>> External RAM
>>>
>>>      SO-DIMM DD3 modules. (Like the Novena.)
>>
>> 2. Do you intentionally want to have SO-DIMM connector instead of
>> discrete chips?
>
> Not intentionally on my part. Joachim?
>
> I guess if we go for discrete chips the need to decide on the exact amount
> (Randy's question) becomes even more important...

If we go for discrete chips, we will have a more compact board. I was 
asking from this perspective.

>
>> 3. I believe your sketch is missing 4th section named "Power subsystem".
>> How is Alpha Board going to be powered?
>
> Good point. I've been thinking it would be an unwarranted complication to try
> and run the Alpha of USB, so I've been assuming an external wall plug for the
> Alpha. Opinions?

Well, it is actually impossible to power Alpha from USB. A typical USB 
port provides 0.5A of current, which at 5V equals 2.5W
According to this document
http://cache.freescale.com/files/32bit/doc/app_note/AN4509.pdf
i.MX6Q consumes almost 3W at full load (that's why there's a radiator 
attached to it in Novena). So the CPU alone can consume more power, than 
USB port can provide. So yes, we will need a wall adapter (12V maybe?)

>
> Related, when we talk battery do people think CR2032, 12V 6Ah Sealed Lead Acid
> battery or something else?

Depends on what you want to be battery-powered. CR2032 should be enough 
to power tamper detection circuit for several years. Btw, you want to 
use MSP430 in this circuit. What is it going to do? Read some sensors 
and toggle its outputs accordingly? I suggest to use something smaller, 
like PIC18 or PIC16 from Microchip. These processors are 8-bit and have 
an order of magnitude less power consumption. How is MSP430 programmed, 
btw? Will we need a special programming cable for it?

--
With best regards,
Pavel Shatov



More information about the Tech mailing list