Hi all OpenRISC gurus:
I'd like to implement the multiply and divide ORBIS instructions on my
OR10 CPU.
I did a quick research, and this area is not straightforward, or maybe I
haven't found the right website yet. I could invest more time and study
the existing implementations, but I'm hoping somebody here can help me
save a lot of time and effort.
I guess implementing a generic multiplicator in pure Verilog will end up
taking a lot or resources, so I looked at the Xilinx primitives / IP
generator. The first thing I noticed is that there are no carry or
overflow signals. As discussed in this list before, the existing or1200
implementation does not generate the same carry and overflow results as
or1ksim. Can anybody point me to a good website where I can copy a
correct Verilog carry/overflow implementation from? Can I still use the
Xilinx primitives to save FGPA area and calculate carry/overflow separately?
Should I go for a pipelined version, in order to let the rest of the CPU
run at a higher speed when not multiplying? I think or1200 has a
configuration option to disable carry and overflow, should I go ahead
with Xilinx's IP cores and leave carry and overflow out? Or does GCC
need them?
Can I reuse a multiplicator somehow for signed and unsigned integers, or
do I have to implement one for each kind?
Is there a Xilinx IP core to divide integers, or can I resort to some
other trick with other components? Or do I have to resort to a pure
Verilog implementation?
Thanks in advance,
rdiez
_______________________________________________
OpenRISC mailing list
[email protected]
http://lists.openrisc.net/listinfo/openrisc