HIVE Processor
by ericw on Jun 24, 2013 |
ericw
Posts: 15 Joined: May 25, 2010 Last seen: Oct 5, 2022 |
||
Check out my new 32 bit, 8 thread, 4 register/stack hybrid, pipelined verilog soft processor core:
http://opencores.org/project,hive I spent quite a bit of time coding it and documenting it: http://opencores.org/usercontent,doc,1371986749 Even if you don't care about my design, the paper might be interesting for general background. Cheers! (It took me all day to figure out SVN to upload the verilog, what a freaking pain! For non-group projects why can't we just upload a zip file or something?) |
Re: HIVE Processor
by beattidp on Sep 8, 2013 |
beattidp
Posts: 1 Joined: Sep 20, 2009 Last seen: Mar 4, 2021 |
||
So, is there an assembler in the works
for this processor core -- How shall it be programmed? I skimmed through the documentation, which implied the motivation to program the processor in machine code, "without the need for a compiler or even an assembler." It might remain little more than a novelty until and unless there is a software/firmware tool chain of some kind. That said, I think it would run FORTH extremely well, and be suitable for hard real-time apps. (And I hear that an assembler written in FORTH is not too much work for someone who knows it.) |
RE: HIVE Processor
by ericw on Sep 9, 2013 |
ericw
Posts: 15 Joined: May 25, 2010 Last seen: Oct 5, 2022 |
||
No assembler yet, not sure if / when something like that might happen, though if you look at the programming examples at the end of the paper or download the verilog you'll see the boot code is fairly "assembler-ish" as-is. The whole tool chain thing is kind of a turn-off to me as the OS / base platform is a constantly moving target, but it would almost certainly help with development as the boot code could be a simple boot loader. And having more things to change when the op-codes change would perhaps discourage me from changing the processor so often! (I'm hoping to simplify the immediates and separate the memory & IO spaces this week.)
I put the design out there not so much as a general purpose processor but for others who work in FPGAs to serialize complex & slow functionality, who need deterministic timing, and who find the current offerings overly complex (from an architectural and/or tool chain angle). As such it needs to be a good fit for the target logic, and I feel it also needs to be easy to conceptualize and program. Plus my particular implementation of indexed stacks might give others ideas for their processor designs. If Hive remains obscure I'll be OK with that. I've looked into FORTH quite a bit in the past (and own several books on it) but discouragingly found the syntax difficult to read and the programming model overly simplistic (IMO) so there is almost zero chance of me taking it in that direction, but I remain open to the possibility of appreciating stack-based languages in general. |
RE: HIVE Processor
by simon_t on Nov 10, 2013 |
simon_t
Posts: 1 Joined: Nov 11, 2008 Last seen: Jan 14, 2021 |
||
Eric,
I can help you or give you hints and tips writing a basic assembler. I started recently writing one for my DSP-core. Please let me know if this is of interest to you. grtz Simon |
RE: HIVE Processor
by ericw on Nov 15, 2013 |
ericw
Posts: 15 Joined: May 25, 2010 Last seen: Oct 5, 2022 |
||
Hi Simon,
Thanks for your kind offer, I may take you up on it at some point. I do have a spiffy Excel simulator of HIVE that took me a couple of weeks to write. It only simulates one core but that should be sufficient to thoroughly debug subroutines and such. It needs some way to conveniently get code into / out of it though. Still working on the core, the operation ordering and encoding is significantly more unified now. I'm currently experimenting with 8 stacks rather than 4 as this seems to make complex coding easier for human brains to track by reducing the need for copy / move. |
RE: HIVE Processor
by ericw on Jan 6, 2014 |
ericw
Posts: 15 Joined: May 25, 2010 Last seen: Oct 5, 2022 |
||
I just posted the latest design document for Hive v04.05.
http://opencores.org/project,hive I can't connect to the SVN point so I can't update the verilog. Until then it's available here: http://www.mediafire.com/download/g2nd401hhn4vf90/HIVE_2014-01-02_v04.05.zip And here is the design document: http://opencores.org/usercontent,doc,1389026037 http://www.mediafire.com/view/x7qci2cv4vyvdei/Hive_Design_2014-01-05.pdf Hive now has 8 stacks and the opcodes have been modified somewhat. It's much cleaner and also has a double buffered UART. The design document has more programming examples. I'm working on an Excel VBA simulator for it. |
RE: HIVE Processor
by indirasulo on Jan 17, 2014 |
indirasulo
Posts: 29 Joined: Jan 12, 2012 Last seen: Sep 26, 2014 |
||
hive unrelated: next time please use justified alignment for documentation text
Did you do any verification on your RTL? Do you claim that your processor strongest point lies in the field of DSP? Maybe some code examples could demonstrate your ideas better than many words. |
RE: HIVE Processor
by ericw on Jun 7, 2014 |
ericw
Posts: 15 Joined: May 25, 2010 Last seen: Oct 5, 2022 |
||
hive unrelated: next time please use justified alignment for documentation text
What part of FREE don't you understand? |
RE: HIVE Processor
by ericw on Jun 8, 2014 |
ericw
Posts: 15 Joined: May 25, 2010 Last seen: Oct 5, 2022 |
||
Just posted v05.03 of Hive code and design document. There is enhanced interrupt support, and 32 bit indirect register set access. The verilog is a bit leaner and meaner (faster) than previous.
|
RE: HIVE Processor
by ericw on Sep 16, 2014 |
ericw
Posts: 15 Joined: May 25, 2010 Last seen: Oct 5, 2022 |
||
Just posted v06.01 of Hive
- Major changes in hive_main_mem.sv to support 16 & 32 bit aligned and unaligned access for literals and memory R/W. - Main memory BRAM now a dual entity to provide separate addressing of high and low and to circumvent bootcode init issues. - R/W immediate field offset is based on 16 bit access. Quick link to the design document v06.01: http://www.mediafire.com/view/ghtn03wqe4a6k0z/Hive_Design_2014-07-15.pdf Quick link to the SystemVerilog code v06.01: http://www.mediafire.com/download/9iloxic8535cdt7/HIVE_SV_2014-07-13_v06.01.zip |
RE: HIVE Processor
by ericw on Oct 10, 2014 |
ericw
Posts: 15 Joined: May 25, 2010 Last seen: Oct 5, 2022 |
||
Quick link to the Excel simulator v06.01: http://www.mediafire.com/download/4vy7d202xu7fdbs/HIVE_SIM_2014-10-08.xls
|
RE: HIVE Processor
by ericw on Sep 7, 2015 |
ericw
Posts: 15 Joined: May 25, 2010 Last seen: Oct 5, 2022 |
||
With v08.06 there is now an interactive C++ simulation of the full core (all 8 threads) which runs at ~800kHz real time and really speeds up code development. It's a Win console app in the zip, source included. This is ~8 months of coding work! (I feel like I gestated and birthed a human baby!) The verification boot code was re-written via the sim, and there is an appendix in the doc that gives you a quick tour of the sim. Boot code is now *.mif based. Enjoy!
|
RE: HIVE Processor
by dgisselq on Sep 8, 2015 |
dgisselq
Posts: 247 Joined: Feb 20, 2015 Last seen: Oct 24, 2024 |
||
Impressive! That looks like it was a lot of work.
I'm curious, though ...
I will also state that I find your copyright statement ... unusual. :) Thanks! Dan |
RE: HIVE Processor
by ericw on Sep 17, 2015 |
ericw
Posts: 15 Joined: May 25, 2010 Last seen: Oct 5, 2022 |
||
Hello Dan,
I designed Hive for my own FPGA needs (I plan to use it in a digital Theremin) as a 32 processor that isn't nearly as complex as commercial offerings. IMO processors are overblown, which then makes toolsets and such mandatory. Outside of the simulator / code development environment there are no plans for assembler, compiler, etc. There aren't that many opcodes, and the mental model of the architecture is straightforward and manageable. Hive currently consumes 2420 LEs of an Altera EP3C5E144C and runs at 194 MHz in that device. This is a tiny FPGA and it consumes a little less than 1/2 of it (though it gobbles up the BRAM). "I will also state that I find your copyright statement ... unusual. :)" My Engineering Ethics class in college went on and on about Frankenstein and Space Shuttle 0-ring whistleblowing and such, but never once mentioned the fact that most EEs do weapons / spy work. It's almost impossible not to get blood on your hands in my field, which distresses me greatly. |
RE: HIVE Processor
by sbta on Sep 19, 2015 |
sbta
Posts: 1 Joined: Sep 11, 2015 Last seen: Nov 3, 2015 |
||
Hi Ericw,
I am embedded MCU based system designer.... yet, new to Verilog/VHDL for FPGA world. I am thinking about developing the Altera MAX 10 based FPGA board, tentatively to run at 80 MHz ...just for EDUCATIONAL PURPOSES in schools and university. I hope and will consider to introduce your HIVE Core into my FPGA board later and I hope to be able to get your support. My email sam_desd@yahoo.com. RE: SAM |