.... So, we are missing 200MHz by something like 180ps. Timing will stretch out a little more in the final layout.
What is the Vcc/Temp target for that -180ps miss ?
It is common for MCU suppliers to give MHz/Vcc curves, and a tighter Vcc spec, gives higher clock speeds. (or a lower Max temp)
Being Static RAM based, P2 should operate over quite a range of Vcc, including some quite low Ram-retention value.
.... So, we are missing 200MHz by something like 180ps. Timing will stretch out a little more in the final layout.
What is the Vcc/Temp target for that -180ps miss ?
It is common for MCU suppliers to give MHz/Vcc curves, and a tighter Vcc spec, gives higher clock speeds. (or a lower Max temp)
Being Static RAM based, P2 should operate over quite a range of Vcc, including some quite low Ram-retention value.
180MHz at worst process corner, 90% voltages, 150 C temperature.
Chip,
May I mention again, that it would be nice if the SPI FLASH interface could use both a combined DI/DO (P59) pin and a separate DO (P59) and DI (P58). It should be simple enough to look for the reply on both P59 & P58, and if present on P58 then use separate pins from then on. This gives the designer a choice.
The SD interface requires separate DI and DO pins.
Chip,
May I mention again, that it would be nice if the SPI FLASH interface could use both a combined DI/DO (P59) pin and a separate DO (P59) and DI (P58). It should be simple enough to look for the reply on both P59 & P58, and if present on P58 then use separate pins from then on. This gives the designer a choice.
The SD interface requires separate DI and DO pins.
Chip
Can you confirm a change in GETBRK D wc
In particular the skipk[3:0] (skip CALL depth)
On entry to a skip sequence in V32a the value starts at 1.
On exit from the sequence the value is 0.
In V32pre it starts at 0 on entry.
Chip
Can you confirm a change in GETBRK D wc
In particular the skipk[3:0] (skip CALL depth)
On entry to a skip sequence in V32a the value starts at 1.
On exit from the sequence the value is 0.
In V32pre it starts at 0 on entry.
I will be in the office soon and I will get this debug stuff updated. I will start with the GETBRK instruction.
Chip
Can you confirm a change in GETBRK D wc
In particular the skipk[3:0] (skip CALL depth)
On entry to a skip sequence in V32a the value starts at 1.
On exit from the sequence the value is 0.
In V32pre it starts at 0 on entry.
SKIP/SKIPF/EXECF/XBYTE all reset it to zero. It increments only on a CALL/CALLPA/CALLPB and decrements only on a RET/_RET_.
See the new bit assignments in the post above. Things have changed from before.
A bug was discovered the other day in v32a, where writes to hub via SETQ(2)+WRLONG were sometimes writing incorrect data in the second long. This has been fixed and a new v32b is available at the top of this thread.
I'm trying to test the SD card slot in the DE2-115, but I can't get it to work. My understanding is that the CS, CLK, DO and DI are mapped to pins 61, 60, 59 and 58 when SW17 is up. Is that correct? I can't get my code or Cluso's test code to work.
I'm trying to test the SD card slot in the DE2-115, but I can't get it to work. My understanding is that the CS, CLK, DO and DI are mapped to pins 61, 60, 59 and 58 when SW17 is up. Is that correct? I can't get my code or Cluso's test code to work.
I tried various mappings of pins 58-61 with the SD pins, and with SW17 up and down, and with the flash chip removed, but none of that worked. So I'm assuming that the SD card holder isn't connected in v32a for the DE2-115.
I tried various mappings of pins 58-61 with the SD pins, and with SW17 up and down, and with the flash chip removed, but none of that worked. So I'm assuming that the SD card holder isn't connected in v32a for the DE2-115.
Sorry I dropped the ball here.
Here is the AHDL code that connects the SD card on the DE2-115 board:
It looks to me like this should work, but I've had some strange experiences where trying to make pins map-able hasn't worked in AHDL. I could compile a fixed DE2-115 version with the SD signals certainly attached. I'll start that now. Meanwhile, maybe you can see some error in this file.
Is XORO32 still the slowest instruction? Did our recent change make much difference?
It got sped up in two ways. First, I increased its priority in the result mux. Second, we compute the first 16-bit PRN prior to iteration. Those two changes pushed it way down.
Currently, the critical paths in the design are all the big hub RAM instances' Q outputs, which go straight into registers. Not much we can do about that, but it's good to know that we've got everything else patted down.
Here is a DE2-115 v32b image that connects directly to the SD pins. This may work.
I got my code to work with that image. However, it appears the problem was with the SD card I was using. I could never get it to work with the SD card I was using, even though it works fine in my PC. I tried a different card, and it worked. I also tried the FPGA image in the v32b zip file, and it works OK when SW17 is in the lower position.
I could not get Cluso's SD test program to work at all. I only have the binary for that program, and I'm guessing it's not compatible with V32.
It's a 4GB SanDisk card that I bought several years ago. My SD driver is adapted from one that was used with FSRW. I added prints to the driver, and it times out in a loop where it sends a command of 55, and then a command of 41, and then waits for the response to be different than 1. It always returns a value of 1. I'm not sure what that means. It's been a while since I've looked at the SD protocol.
Here is a DE2-115 v32b image that connects directly to the SD pins. This may work.
I got my code to work with that image. However, it appears the problem was with the SD card I was using. I could never get it to work with the SD card I was using, even though it works fine in my PC. I tried a different card, and it worked. I also tried the FPGA image in the v32b zip file, and it works OK when SW17 is in the lower position.
I could not get Cluso's SD test program to work at all. I only have the binary for that program, and I'm guessing it's not compatible with V32.
Chip, thanks for your help.
No, the code I last posted is not v32 object compatible. I will post the code when I get home tonight (as soon as I can). It has some nice debugging so I should be able to tell how far it gets in the boot sequence.
Meanwhile, would you mind posting the cards brand, size, and any other info. Thanks.
Is it SDHC or standard SD and Class?
Formatted as FAT32 or FAT16?
I presume microSD?
My FAT32 in Tachyon P1/P2 has a whole heap of debugging built-in if you want to try it. You can even issue the commands line by line and look at responses plus there is a utility that reads and lists the card information from cid and csd. Whatever the reason it would be good to know. You can try this out on a P1 or P2 but there is a binary image for P1 V5 in the Dropbox with EASYFILE or you can load P2 with TAQOZ and then paste TAQOZ.FTH into the terminal, type MOUNT and see what happens.
I am home, but my laptop has been commandeered by the wife to play Netflix on our TV. We got interested in binge watching Continuim and a couple of nights ago I watched ahead so she's in catch-up mode
Will post SD code later tonight or the morning. It displays CSS, cid and the sectors read and the card type. It's not as detailed as older versions but they we're P1 versions only.
Ray, you need a chromecast dongle, then you only need a laptop or phone to start the netflix playing, and you can have the laptop back for things that really matter : )
Comments
What is the Vcc/Temp target for that -180ps miss ?
It is common for MCU suppliers to give MHz/Vcc curves, and a tighter Vcc spec, gives higher clock speeds. (or a lower Max temp)
Being Static RAM based, P2 should operate over quite a range of Vcc, including some quite low Ram-retention value.
180MHz at worst process corner, 90% voltages, 150 C temperature.
When you get to that, have a quick look over here, at my suggested tweak to the SPI Flash preamble.
Ok. Thanks.
Wasn't there a way to compile with pnut without a P2 FPGA board present, including inspection of the label addresses? Tried Ctl-G without success
Try ctrl+M
It's under the FILE menu as "list toggle PASM" - the M in PASM is the shortcut.
May I mention again, that it would be nice if the SPI FLASH interface could use both a combined DI/DO (P59) pin and a separate DO (P59) and DI (P58). It should be simple enough to look for the reply on both P59 & P58, and if present on P58 then use separate pins from then on. This gives the designer a choice.
The SD interface requires separate DI and DO pins.
Got it.. Thanks.
Can you confirm a change in GETBRK D wc
In particular the skipk[3:0] (skip CALL depth)
On entry to a skip sequence in V32a the value starts at 1.
On exit from the sequence the value is 0.
In V32pre it starts at 0 on entry.
I will be in the office soon and I will get this debug stuff updated. I will start with the GETBRK instruction.
SKIP/SKIPF/EXECF/XBYTE all reset it to zero. It increments only on a CALL/CALLPA/CALLPB and decrements only on a RET/_RET_.
See the new bit assignments in the post above. Things have changed from before.
Let me check.
Sorry I dropped the ball here.
Here is the AHDL code that connects the SD card on the DE2-115 board:
Here is the whole file. This is actually at 4 spaces per tab, so it looks weird here. It won't let me attach the .tdf file, so here it is:
It looks to me like this should work, but I've had some strange experiences where trying to make pins map-able hasn't worked in AHDL. I could compile a fixed DE2-115 version with the SD signals certainly attached. I'll start that now. Meanwhile, maybe you can see some error in this file.
Here is a DE2-115 v32b image that connects directly to the SD pins. This may work.
It got sped up in two ways. First, I increased its priority in the result mux. Second, we compute the first 16-bit PRN prior to iteration. Those two changes pushed it way down.
Currently, the critical paths in the design are all the big hub RAM instances' Q outputs, which go straight into registers. Not much we can do about that, but it's good to know that we've got everything else patted down.
I could not get Cluso's SD test program to work at all. I only have the binary for that program, and I'm guessing it's not compatible with V32.
Chip, thanks for your help.
Does anyone have any idea why that card didn't work?
No, the code I last posted is not v32 object compatible. I will post the code when I get home tonight (as soon as I can). It has some nice debugging so I should be able to tell how far it gets in the boot sequence.
Meanwhile, would you mind posting the cards brand, size, and any other info. Thanks.
Is it SDHC or standard SD and Class?
Formatted as FAT32 or FAT16?
I presume microSD?
Will post SD code later tonight or the morning. It displays CSS, cid and the sectors read and the card type. It's not as detailed as older versions but they we're P1 versions only.