How do you measure size? Number of LUTs? Is block RAM free?
-
-
I'd probably go with number of tiles or possibly config frames on Artix 7, with categories something along line of SLICEL only, SLICEL+SLICEM and "free for all" (DSP+BlockRAM). Figuring out the rules and how to evaluate entries is a large part of the effort I think?
1 reply 0 retweets 2 likes -
Number of tiles and number of frames are *very* different metrics! A bram column contains 28+128=156 frames and 10 tiles. A logic column contains 36 frames and 50 tiles. So either a bram column is 4x *more* expensive than logic (frames) or 5x *less* expensive (tiles).
1 reply 0 retweets 2 likes -
Related: In the free-for-all category, have points for "worst abuse of hard IP". Example: using a GP_COUNT8 with count=1 as a R-S FF (RST=R, CLK=S) when you run out of flipflops
0 replies 0 retweets 0 likes -
This Tweet is unavailable.
-
Replying to @scanlime @azonenberg and
What I /think/ I'm after is a RISC-V processor which is small enough that dedicating a whole core/CPU to doing bitbanging I2C or other similar low speed peripheral makes sense. RISC-V because of existing tooling for C programming.
1 reply 0 retweets 1 like -
i2c is between 100 kbit/s and 3.2 Mbit/s. You won't be able to bitbang that on a core that takes up to hundreds of cycles for each RISC-V instruction. But you'd probably have performance like that with "an 8-bit CPU running an emulator for RISC-V", as you suggested.
2 replies 0 retweets 1 like -
If the 8-bit CPU is running at 100MHz (ops) and 100 ops per instruction that is still 1MHz CPU which feels fast enough to bit bang I2C at 100kbit/s? On the RISC-V - I would actually be fine with any architecture that has mainline GCC support.
2 replies 0 retweets 0 likes -
For receive you usually need to sample with at least twice the data bitrate, so that leaves no more that 5 RISC-V instructions for each sample interval. What would your RISC-V assembler for that look like? (Should fit easily in a tweet - it's only max. 5 instructions.)
2 replies 0 retweets 0 likes -
I don't know RISC-V ASM -- I would expect a bunch of things like; init: if (get_pin() != 1) goto init v = get_pin() v <<= 1 v = get_pin() ... repeat 8 times ... if (v != my_addr) goto init etc..
1 reply 0 retweets 0 likes
How many RISC-V instructions is get_pin()? Also: That's certainly not i2c! You have to monitor clock and data, see if data is stable for a positive clock pulse (which can be of variable length) and if so you got a bit, otherwise you got a start or stop condition. All in 5 insns!
Loading seems to be taking a while.
Twitter may be over capacity or experiencing a momentary hiccup. Try again or visit Twitter Status for more information.