Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

[ANN] XMODZ-Fast modulo reduction VHDL IPs

80 views
Skip to first unread message

Nikolaos Kavvadias

unread,
Jun 4, 2013, 1:53:58 AM6/4/13
to
The XMODZ IP collection provides fast hardware implementations for the
modulo computation on integers. The collection comprises of two
distinct IP modules, modk for modulo by a fixed integer constant and
modv for modulo by an integer variable.

Modulo reduction is widely used in cryptographically-secure systems,
for fast pseudo-random number generation and is suitable for RNS
(Residue Number System) applications.

XMODZ can be used as a ROYALTY-FREE component for use in your
projects.

Interesting features and characteristics of XMODZ include:
- highly-parameterized synchronous architecture
- register-pipelined operation with single-cycle throughput
- scalable architecture supporting any data bitwidth
- 198-230 MHz achieved clock rates for both cores on Xilinx Virtex-6.

The XMODZ IPs comprise of the following deliverables:
- Documentation in ASCII text, PDF, HTML formats
- Vendor-independent VHDL code for both modk and modv
- Self-checking testbenches
- Configurable multi-precision integer reference C models for test
data generation using the public domain "free GMP" library (GMP API-
compatible)
- Various helper scripts for simulation (GHDL, Modelsim) and
synthesis.

SPECIAL OFFER!
--------------
Any user that will register and download MPRFGEN within 2013 is
eligible to ALL of the following:
- free updates for the entire lifetime of the product
- free email support.

Pricing information and sample downloads:
http://www.nkavvadias.com/eshop


Best regards,
Nikolaos Kavvadias <ni...@nkavvadias.com>
Research Scientist
Lamia, Fthiotis, Greece
http://www.nkavvadias.com
http://www.perfeda.gr

John Speth

unread,
Jun 4, 2013, 12:13:10 PM6/4/13
to
On 6/3/2013 10:53 PM, Nikolaos Kavvadias wrote:
> Nikolaos Kavvadias

Thank you, Mr. Nikolaos Kavvadias, for the SPAM!

I'll remember that next time my company evaluates IP vendors.

JJS

Nikolaos Kavvadias

unread,
Jun 4, 2013, 3:40:28 PM6/4/13
to
Hi John,

> Thank you, Mr. Nikolaos Kavvadias, for the SPAM!
>
> I'll remember that next time my company evaluates IP vendors.

I think that such kind of announcements (straight, informative and to
the point) are far from spam.

Personally, I find myself reading such "ANN"s, most of the time.

I didn't intend to make you feel offended, just to let people know
what kind of IP is available as a standalone offering.

If you have any technical questions, observations or suggestions I
will be glad to answer them.

Kind regards,
Nikolaos Kavvadias
http://www.nkavvadias.com
http://www.perfeda.gr


>
> JJS

thomas....@gmail.com

unread,
Jun 4, 2013, 5:33:49 PM6/4/13
to

> Thank you, Mr. Nikolaos Kavvadias, for the SPAM!
>

Nowadays, I think we should be happy for every bit of traffic we get here at comp.arch.fpga ;-)

On-topic:
I am not sure if your IP allows for arbitrary Zs (e.g. x MOD 253) or just special ones.

About a year ago I had to do mod 3 and mod 7 operations on about 12b wide operands. After thinking almost a complete day, I came up with a solution that was extremely fast and small (I think just about 20 LEs for each case). But my approach would not work for every modulo.

Regards,

Thomas
www.entner-electronics.com

Nikolaos Kavvadias

unread,
Jun 5, 2013, 1:57:17 AM6/5/13
to
Hi Thomas,

> Nowadays, I think we should be happy for every bit of traffic we get here at comp.arch.fpga ;-)

I feel this way too ^_^

> On-topic:
> I am not sure if your IP allows for arbitrary Zs (e.g. x MOD 253) or just special ones.

The modv IP (x mod by an independent variable, z) allows you to use
any z.

The modk IP has to be fixed at compile/elaboration time to a specific
constant K.
However, you can change the value of K (it is a generic) and therefore
modk can be configured to support any positive integer constant.

> About a year ago I had to do mod 3 and mod 7 operations on about 12b wide operands. After thinking almost a complete day, I came up with a solution that was extremely fast and small (I think just about 20 LEs for each case). But my approach would not work for every modulo.

Yes, you are right. mod 3, 7, 10, 12 are some of the most popular
constants.
A general circuit description has the benefit of removing all this
redesigning burden from you.

Thomas, have you read the product brief and the documentation?
Here are corresponding links to both:

http://perfeda.gr/data/documents/xmodz-pb.pdf
http://perfeda.gr/data/documents/xmodz-README.pdf

I also think that is possible to provide Modelsim (or GHDL on Linux)
compiled files (not the HDL itself) for evaluation (for free). And/or
to supply a synthesis report for your specific cases, just for
reference purposes.

Best regards
Nikolaos Kavvadias
>
> Regards,
>
> Thomaswww.entner-electronics.com

Nikolaos Kavvadias

unread,
Jun 5, 2013, 3:34:27 AM6/5/13
to
Hi Thomas,

this is a summary of synthesis reports for XMODZ on your suggested
configurations.

The results have been obtained with Xilinx XST/ISE 12.3 for a small
Virtex-6 device (XC6VLX75T).

"REG" designs have pipeline registers at each stage, "COMB" designs
only have registers at the output.

(This table is best viewed with a monospace font).

+--------+------+----------+------------+------------+------------
+-------------+
| Design | Mode | Latency | Throughput | Min. clk per| LUTs |
Regs |
| | | | | |
| |
+--------+------+----------+------------+------------+------------
+-------------+
| modv | REG | 14 | 1 | 3.5 ns | 174 |
235 |
+--------+------+----------+------------+------------+------------
+-------------+
| modv | COMB | 1 | 1 | 32 ns | 154 |
13 |
+--------+------+----------+------------+------------+------------
+-------------+
| modk=3 | REG | 12 | 1 | 2.53 ns | 111 |
98 |
+--------+------+----------+------------+------------+------------
+-------------+
| modk=3 | COMB | 1 | 1 | 5.76 ns | 36 |
13 |
+--------+------+----------+------------+------------+------------
+-------------+
| modk=7 | REG | 11 | 1 | 2.53 ns | 112 |
94 |
+--------+------+----------+------------+------------+------------
+-------------+
| modk=7 | COMB | 1 | 1 | 21.86 ns | 88 |
13 |
+--------+------+----------+------------+------------+------------
+-------------+

Best regards
Nikolaos Kavvadias
0 new messages