[Cryptech Tech] Alpha board strategy
Павел Шатов
meisterpaul1 at yandex.ru
Thu Feb 19 14:22:46 UTC 2015
On 19.02.2015 14:27, Joachim Strömbergson wrote:
> The purpose of the alpha rev one version is to get to a real board as
> soon as possible, not spend more time to find the perfect CPU.
>
> Selecting the i.mx6 makes sense because we know that we can run cryptlib
> on it now, and that we know how to interface the FPGA with it. Being
> able to easily port your EIM interface to other FPGA architectures was
> one factor that we considered.
>
> There are tons of ARM-based MCUs out there. Unfortunately many of them
> are tergeted for embedded systems and includes a lot of functionality to
> reduce the cost in those applications, functionality we don't want to have.
>
> If we can get the CPU core in the MCU to run at full speed without
> binary boot code (which the RPi requires) we might have to live with
> having excess functionality for the time being. If we really want to
> have our own CPU design with just the peripherals we need we probably
> need to use a soft core in a FPGA.
>
> But if you know of a very clean A9-based ARM MCU then please tell us.
I haven't worked with ARMs for several years, so I can't recommend
anything. If you haven't found anything suitable, then let's use i.MX.
We can change it later if we want.
>
> We want to have at least 2x headroom compared to LX45 or C5, probably
> more to be on the safe side for the first iteration. This is why I
>
> 2.4) To compare Spartan-6 and Cyclone-V capacity we need to
> understand what Xilinx's Slice and Altera's LE are. I've attached a
> table with corresponding calculations. Fundamental elements of an
> FPGA are LUTs and FFs, so we can convert from slices and LEs and
> compare. I was able to fit five instances of SHA-512 core in Novena's
> LX45 device. Joachim, could you please try the same say in Altera's
> A5 device (roughly equivalent to Xilinx's LX45) to compare?
> I can instantiate less than at least 8 SHA-512 cores in a A5 device. One
> A7 _should_ be able to the biggest design given by a use case.
Excuse me, but I still don't get it. If you want 2x capacity of LX45,
you can use LX75. If you want 2x capacity of C5, you can use C7. You can
use older Cyclone IV which is about 4x capacity of C5. You can even use
Artix-7 which is huge. Joachim, do we have all the cores that we want to
use in our Alpha Board? If we do, then let's just compile them all and
write down how many logic they require. Then for every use case we can
add up corresponding numbers and pick the largest value. If it fits in
one single FPGA, then we most probably don't need another one. Do we
have all the cores already written? Can we do this calculation?
>
> Yes, F484 package is a good choice. Almost possible to solder by hand if
> one does not have 40+ year eyes.
Err... To reliably solder that large BGA by hand one probably needs
X-ray capable eyes :)
> It is also a question on who we can find to do the board design. Randy
> wants to try to find people in Asia. And what Bunnie has suggested is
> that you decide on type/brand of CPU (Freescale i.mx6 for example) and
> then find the person with experience of doing board design for that
> device. If that person find it to be much easier to do board design with
> Xilinx tha Altera, then we may have to reevaluate.
To produce actual Alpha Boards we need to follow this plan:
1) Decide on what components to have in our board. We have no other
variants, so the CPU will be i.MX. The FPGA is being selected. What else
do we need? Ethernet PHY, memory, etc?
2) After all the components are selected, we need to capture schematics
of our board. Can we re-use bunnie's design? We can take CPU and power
supply from Novena and add another FPGA (or two) to it.
3) After we have schematics, we will need some additional information to
start actual layout (desired board dimensions, location of connectors,
position of mounting holes, silkscreen color, logo picture to place on
our board, etc).
4) Find a person/company to do the layout.
5) Find a company to manufacture boards.
6) Buy components and find a company to solder the boards.
I can help you with steps 1-3 and prepare schematics along with
additional information that will be needed to do the layout. I do not do
layout jobs remotely, so we need to find someone to do it, but I can
review the finished layout when it is ready. Xilinx/Altera experience
plays an important role during step 3, as you need to connect all the
components the right way. Once you have complete schematics (netlist),
board layout becomes more of a mechanical process, routing Xilinx PCB
doesn't differ much from routing Altera PCB.
Steps 4-6 are closely related. Basically we need to do three operations:
layout, fabrication and assembly. One thing to consider is that we need
to know fabrication capabilities before layout is started. If we find a
company that can only produce boards say with 0.2 mm wide traces and our
layout has 0.1 mm traces, then we will not be able to fabricate our
boards. Another important thing is that to assemble our boards we will
need bill of materials (BOM) and assembly database with locations of all
the components. So, after step 4) we should have a set of Gerber files,
NC drill files, BOM file and assembly database (most probably ODB++
file). We need to be sure that the company that will solder the boards
for us accepts assembly database format that we receive after step 4).
The best solution is to find one single company that can do the layout,
fabricate the boards and solder them. I've only dealt with Russian
companies, so I'm afraid I can't recommend anything right now in Europe.
Do you have any variants?
More information about the Tech
mailing list