Shop OBEX P1 Docs P2 Docs Learn Events
First look at the BeMicro CV-A9 FPGA board — Parallax Forums

First look at the BeMicro CV-A9 FPGA board

ozpropdevozpropdev Posts: 2,791
edited 2015-08-27 11:15 in Propeller 1
Hi All
I had a quick play with my BeMicro CV/A9 board and thought I'd share the results.
I built a standard P1 with font,trig,log tables removed.
Hub was expanded to the maximum accepted by Quartus for this device.
1152K Hub Ram! (-4k rom)
 >map
         +------------------------------+
$000000: |                              |
         |          60k Hub RAM         |
$00EFFF: |                              |
         +------------------------------+
$00F000: |                              |
         |      4k Spin/Booter ROM      |
         |          booter2.hex         |
$00FFFF: |                              |
         +------------------------------+
$010000: |                              |
         |     +1088k Extra Hub RAM     |
$11FFFF: |                              |
         +------------------------------+
 >
Sadly the SPIN interpreter fails with hub > 256K.
I replaced then booter with a dedicated PASM memory test module which
verified the hub memory operation. Hopefully some tweaks can be made to the
spin interpreter to take advantage of the large hub space.

Here's the build results from Quartus.
Quartus II 64-Bit Version	15.0.2 Build 153 07/15/2015 SJ Web Edition
Family	Cyclone V
Device	5CEFA9F23C8
Logic utilization (in ALMs)	10,071 / 113,560 ( 9 % )
Total registers	6415
Total pins	74 / 224 ( 33 % )
Total block memory bits	9,568,256 / 12,492,800 ( 77 % )

Note how many ALM's are free for extra stuff. :)
Also here is some pinout diagrams for the two 40 pin headers to help with pin assignment.
Stay tuned!

j1.jpeg
j4.jpeg
«1

Comments

  • Will you be creating a P1 FPGA with 16 COGS and 512KB HUB ram? It seems like Parallax should be coming out with a Spin2 for the P2, which will have to be able to handle the larger HUB ram. So, maybe Spin2 could be used for the new P1 FPGA configuration? Just curious at this point, my BeMicro CV board is sitting, in storage, doing nothing at the moment.

    Ray
  • Lovely work.
    I can't seem to find the time to play with my BeMicroCVA9 at this point.... but looking forward to doing so eventually.
  • jmgjmg Posts: 15,140
    ozpropdev wrote: »
    Sadly the SPIN interpreter fails with hub > 256K.
    I replaced then booter with a dedicated PASM memory test module which
    verified the hub memory operation. Hopefully some tweaks can be made to the
    spin interpreter to take advantage of the large hub space.

    I think that is the Spin equivalent of ia86 4GB - with a 16b word index, you will be limited to 256k. Going to 32 ( or 24 ) breaks that barrier, but then Spin code just got larger...

    What could be interesting for a P1V would be a means of 16b relative indexes, which would
    allow multiple Spin engines to run in different HUB areas.
    Launch could be 32b based, but smaller 16b branches within that, would avoid the code-size jump.

  • Great work, Ozpropdev!

    ===Jac
  • Very nice indeed



  • Cluso99Cluso99 Posts: 18,066
    Nice :)

    BTW Spin should fail above 64KB since the hub addresses are held as 16 bit references and are byte addresses.

    But what would be nice here is say 2 cogs with 64KB Cog RAM :)
    We could address most of the cog ram as private hub ram, with a small window reserved for the hub.
  • roglohrogloh Posts: 5,122
    edited 2015-08-26 11:43
    When I worked on my 2MB SRAM expansion board, I discovered that the SPIN interpreter was taking a shortcut and generating addresses beyond 64kB in at least one case during its function calls. Some of my SPIN calls worked and some failed and it strangely depended on the number of local arguments which made it intermittent and trickier to figure out but gave me a clue. After finally hunting it down I patched the interpreter and was thankfully able to fix it without needing more space. IIRC the original 2 lines marked with an asterisk below were changed to this sequence instead so that the x variable remains limited to 16 bits before it gets used in callobj to form pbase:

    rdword x,y
    rdlong y,y

    Roger
    callobj			add	pbase,x			'set relative obj bases
    			add	vbase,y		wc	'(c=0, z=0 still)
    
    j1	if_nc_and_z	jmp	#jmpadr			'entry, jmp?
    
    	if_c_and_nz	call	#popx			'pop index
    
    			rdbyte	y,pcurr			'get obj/sub byte
    			add	pcurr,#1
    
    	if_c_and_nz	add	y,x			'add any obj index
    
    			shl	y,#2			'lookup words from table
    			add	y,pbase
    *			rdlong	y,y
    
    *			mov	x,y			'get low word
    			shr	y,#16			'get high word
    
    	if_c		jmp	#callobj	wz	'obj[].sub? (z=0)
    
    			mov	dbase,dcall		'get new dcall
    			rdword	dcall,dcall		'set old dcall
    			wrword	pcurr,dbase		'set return pcurr
    			add	dbase,#2		'set call dbase
    
    			add	dcurr,y			'set call dcurr
    
    spcurr	if_nc		mov	pcurr,pbase		'set call pcurr (c=0)
    	if_nc		add	pcurr,x
    
    			jmp	#loop
    
  • LoopyBytelooseLoopyByteloose Posts: 12,537
    edited 2015-08-26 15:36
    Try switching to an different interpreter, perhaps?
    I am wondering if Forth might be allowed to load the expanded Hubram and then use every bit of it.

    After all, the actual code fits within the SPIN compliler boundaries. The extra RAM could just be accepted as empty dictionary capacity.

    If so, it would certainly allow us all to explore the use of the new Hubram capacity while figuring out what to do with the Spin compiler.
  • Thanks Roger!
    I figured it was some sort of rollover issue as removing spin and using PASM only worked perfectly.
    I will have another play with it all on the weekend. :)
    Cheers
    Brian
  • BTW, your Header J1 and Header J4 diagrams to the CVA9 are wonderful.

    I guess I need to replicate the format for the CV_A2 as the BeMicro documentation forced me to dig through several different places. This is essentially what is on the schematic. That's why it is so useful.
  • @rogloh
    SPIN working nicely accessing the 1152K hub now with no issues.
    Thanks again for the tip. Saved me a lot of time tracking that down. :)
    Cheers
    Brian

  • Wow-wee.......
    Maybe I should get my CVA9 out of the box and actually fire it up. I have been trying to save it until I learned the basics and did all the foolish stuff on the CV_A2.

    This certainly should allow one to have a very complete 3D CNC machine controller in a Propeller architecture, or a sophisticated 3D printer.
  • @ozpropdev
    No problem. I thought it would be useful to mention it... :smile:
    Roger.
  • Loopy
    Don't forget you can add another 32 I/O pins with PortB as well. :)
  • AleAle Posts: 2,363
    Sadly the .1" connectors on this board carry less signals as in the A2 :(. But I want one of these boards anyways. Cheaper with so much logic... there is nothing around.
  • LoopyBytelooseLoopyByteloose Posts: 12,537
    edited 2015-08-29 18:54
    There are a bunch more i/o available on that 80 pin Edge Connector, about 60.

    I went ahead an purchased the BeScope because it came with an adapter for that Edge Connector that will allow me to avoid buying the odd ball plug and and just create a printed circuit board that interfaces.

    When I first went to Arrow, they were selling these adapters alone for more than the BeScope, but then they seems to have stopped selling them separately or at least not mentioning them with the BeMicroCV and BeMicroCVA9.

    I purchased the BeScope simply because I got both. I AM UNCERTAIN THAT THIS OFFER WILL CONTINUE INDEFINITELY.
  • AleAle Posts: 2,363
    Loopy, could you please give me more info about that adapter ?, what does it look like ? Where is it mentioned, name ?

    Thx
  • Ale wrote: »
    Loopy, could you please give me more info about that adapter ?, what does it look like ? Where is it mentioned, name ?

    Thx

    ALE,

    Do you have redirections to the Wikispaces in your sig?

    It is causing confusing for some users.
  • LoopyBytelooseLoopyByteloose Posts: 12,537
    edited 2015-08-29 20:19
    Ale wrote: »
    Loopy, could you please give me more info about that adapter ?, what does it look like ? Where is it mentioned, name ?

    Thx

    Okay, I had to do a bit of digging to find it... and I am uncertain that one can still buy it without buying BeScope bundle, but why would you?

    I NOW THINK the device will NOT work unless it has a mated MALE Plug provided by ADI. But you may want to own one anyway and buying the BeScope to do so is a win. Analog Devices has a lot of daughter boards available at Arrow Electronics to use with the BeMicroCV and CVA9.

    Take a good look at the photos in the link immediately below provided by Analog Devices.

    http://wiki.analog.com/resources/eval/sdp/bemicro_sdp

    And here are all the Analog Devices goodies that may plug in, or may NOT.
    http://www.analog.com/en/design-center/evaluation-hardware-and-software/evaluation-platforms/sdp.html#exallist

    The device is called the BeMicro ADI interposer and not a true Analog Devices product.

    But having taken delivery on a BeScope bundle, it certainly appears it might allow me to create and insert a printed circuit board as long as I get the size and spacing right. I can't be 100% sure at this point.

    Here is the Arrow Electronic/BeMicro adware about it.

    http://www.arrownac.com/solutions/bescope/

    http://parts.arrow.com/item/detail/arrow-development-tools/adiinterposer#QFQn

    It seems there are still 59 of them in stock at $50.00 USD, but the darned thing is included in the BeScope bundle at a total cost of $45.00 USD.

    And to make the whole ordering more dramatic, the BeMicroCV is out-of-stock now and on a backorder status. I am very unsure that the BeScope will work with the BeMicroCVA9 (something I originally presumed it would).

    +++++++++++++
    Shopping these FPGA devices can be rather tricky... just too many i/o pins to chase down when you are first getting started.

  • Do you have redirections to the Wikispaces in your sig?

    It is causing confusing for some users.

    Together with potatohead I moved the wikispace to my github account. Anybody has read acees and can get write access by just asking:
    https://github.com/rosco-pc/propeller-wiki/wiki
  • AleAle Posts: 2,363
    Verical has this sale "no shipping costs" but they do not seem to carry the BeMicro anymore ?

    I removed the sig.
  • LoopyBytelooseLoopyByteloose Posts: 12,537
    edited 2015-08-30 09:12
    Altera seems to decide who gets to be a partner to produce and distribute various FPGA boards to demonstrate their product line.

    It seems that they restrict one design scheme to one distribution channel. So when I go to Altera, they list only Arrow Electronics as distributor of the BeMicro devices.

    ++++++++
    I was a bit disappointed that the ADI Interposer requires yet another oddball connector to connect with another board.

    I took a look at the 80 pin edge connector and found that the 40-pin wide area is 25mm. So it seems the pitch is 0.625mm and a double sided edge connector would be required. if one could find the right connector for the card edge, that would open up the edge connector to any design one wished to attempt.

    I tried searching the internet and found nothing. And anything close to the goal at Mouser or Digikey was expensive (over $10USD by a bit or a lot). Also, I have no designation for the male plug that Analog Devices uses. The 0.625mm pitch is not listed anywhere; either 0.600mm or 0.800mm are mentioned. There may be an 80-pin memory card plug that was adapted to use this edge connector, but I can find anything so far.

    I strongly suspect that both connectors are not available to the general public in any fashion. That's a disappointment.

    Still, the Analog Device daughter boards do offer some very sophisticated expansion that might free up the PinHeader_A and PinHeader_B for other uses. When using these daughter boards, some consideration must be made about what actual voltage is going to be used for all the logic as low voltage differential Tx and Rx are often used to gain a data bus with extremely high speed. And the low voltage differential Tx and Rx each require two pins, so speed is gained at the sacrifice of available i/o count.

    So it seems that the ADI interposer is provided with BeScope to encourage one to buy the ADI daughter boards, and that is about all. There are ADC, DAC, video interfaces, and much more that might appeal to industrial or scientific instrumentation.
  • ozpropdevozpropdev Posts: 2,791
    edited 2015-08-30 13:13
    Loopy
    Rogloh has made a add on board for his Bemicro Max10 board that has the same edge connector.
    I can't remember we he got them from.
    See here
  • LoopyBytelooseLoopyByteloose Posts: 12,537
    edited 2015-08-30 16:01
    How wonderful, I seem to be seeing mention of an MEC6 connector from SamTec for $6 USD that seems very promising.

    "For the high density connector I believe the Samtec part was this : MEC6-140-02-X-D-RA1." -- per Rogloh


    http://www.newark.com/samtec/mec6-140-02-l-d-ra1/connector-card-edge-recepticle/dp/85T5569

    http://parts.arrow.com/item/detail/samtec/mec6-140-02-l-d-ra1-tr#pp2n

    Just having one of these protect the end of the board without actual connection to anything might be wise. I am currently using my ADI Interposer just to protect those 80 pins from contact with the outside world. A HECK OF A LOT BETTER THAN PAYING $50.00 USD. Or simply cover with electrical tape until you are really ready to use, then clean with solvent.

    The use of the 80 pin Edge Card connector will allow an additional 57 general purpose i/o to be included in any project. I don't have a complete count of what the PinHeader_A and B offer to get a grand total.


    The BeMicro and Analog Device literature offered a vague mention of an MEM 80 position edge connector. Perhaps a typo? The pitch is actually 0.635mm or 0.025inches and accepts 1.60mm thick cards (0.062").

    https://www.samtec.com/technical-specifications/Default.aspx?SeriesMaster=MEC6-RA
    I was hoping for a double ended device, but I guess Samtec figured out that they would just sell less by making those.... nothing available to butt two edge cards together.
  • LeonLeon Posts: 7,620
    Altera seems to decide who gets to be a partner to produce and distribute various FPGA boards to demonstrate their product line.

    It seems that they restrict one design scheme to one distribution channel. So when I go to Altera, they list only Arrow Electronics as distributor of the BeMicro devices.

    Arrow isn't just a distributor of the BeMicro; they got it designed and manufactured for them by Zephyr Engineering, whose main business is Software-Defined Radios for amateur radio using Altera FPGAs.

  • The use of the 80 pin Edge Card connector will allow an additional 57 general purpose i/o to be included in any project. I don't have a complete count of what the PinHeader_A and B offer to get a grand total.

    I've been working on a little something-something this weekend so I can give those counts for all supported boards:
    • DE0-Nano: 72 usable pins: 32 for port A, 32 for port B, 7 for "port C", one ~RES
    • DE2-115: 36 usable pins: 32 for port A, 3 for port B, one ~RES
    • BeMicroCV-A2: 63 usable pins: 32 for port A, 30 for port B, one ~RES
    • BeMicroCV-A9: 45 usable pins: 32 for port A, 12 for port B, one ~RES

    I'm considering adding a MEC6 breakout board (to IDC headers) to my design for the BeMicroCV-A9 because having only 12 pins of port B doesn't give me the warm-and-fuzzies.

    See the attachment for what I have so far; there's no PCB design yet and this isn't done yet: some more headers are going to be added for connecting and for patching. In the final version, most things aren't going to be hard-wired: you'll be able to use jumpers and jumper wires to reconfigure how pins are used.

    ===Jac

  • LeonLeon Posts: 7,620
    After a bit of head scratching I successfully programmed the N25Q256A13EF8 FPGA configuration device with a very simple test program. The reference guide doesn't have any instructions for this, but I made some minor changes to the EPCS programming instructions in the reference guide for the earlier BeMicro CV (Pages 8 and 9):

    Section 9 iii Change the configuration device to EPCQ256. I assumed that this was equivalent to the N25Q256A13EF8.

    Section 9 viii Select Cyclone V and 5CEFA9.

    The .jic file was then saved on the PC.

    The .jic then downloaded OK using the programmer and the test program worked OK when the board power was removed and reapplied.
  • LoopyBytelooseLoopyByteloose Posts: 12,537
    edited 2015-09-01 16:11
    Well, I have been looking around to trying and figure out what having an ADI Interposer (the 80pin card edge adapter) actually will allow me to buy.

    I'd can't seem to find much for under $100.00 USD, and those boards seem to demonstrate something like an Analog Devices ADC chip that might individually be purchased for less than $10.00USD.

    Analog Devices seems to have all sorts of daughter boards for people with deep pockets. I guess they service university research labs and such.

    So it does seem that creating an adapter that takes the 80pin edge connector and migrates it over to something useful (like two ribbon cable connectors) would seem to have some significant usefulness. If one could get a complete 80-pin edge card adapter for $50USD or less, it would seem to be competitively priced with the existing ADI Interposer. Provide some additional regulated power and include a reset button to add value.

    ===========

    I am a little concerned with what Arrow is doing as the BeMicroCV is now a backorder item. Will they continue to offer these $50.00 USD gems?

    The Max10 and the CVA9 are still in stock and also use the 80 pin edge connector.

    The BeMicro series -- Max10, CV-A2, and CVA9 seem to be more generous with i/o that most lower cost FPGA devices. And it all centers around that 80-pin edge connector.
  • Leon
    Can you elaborate on the programming procedure.
    Are you using a JTAG plug or the USB-Blaster?
    All my attempts to generate a .jic file for the EPCQ256 are met with errors.
    As you stated earlier, information from Arrow is vague.

    BTW
    A quote from the Altera Wiki
    Urgently needed
    Guide how to program the Configuration Flash to allow persistent configuration of Hardware and NIOS program

    Not a good sign :(
    Cheers
    Brian
  • LeonLeon Posts: 7,620
    Just follow the instructions in the earlier BeMicro CV board ref. guide, with my alterations. Those instructions are actually quite good.

    I've updated the Wiki with my notes.

    I'm using the on-board USB Blaster.

    What exactly are the errors that you are getting when you try to generate a .jic file?
Sign In or Register to comment.