»ù±¾ÔËËãµ¥ÔªµÄ¸ß²ã´Î×ۺϣºC/C++ to RTL
±¾ÎÄÒÔ¼Ó·¨ÎªÀý£º[code]
//----------------------------------------------------
//adder.c
//---------------------------------------------------
void adder(int a, int b, int *sum)
{
*sum = a + b;
}
[/code][size=3]
[/size]
HLS¹¤¾ß£¨AutoPilot£©×ÛºÏÖ®ºóµÄ½á¹û£º[code]
//---------------------------------------------------
//adder.v
//--------------------------------------------------
`timescale 1 ns / 1 ps
module adder (
a,
b,
sum
);
input [31:0] a;
input [31:0] b;
output [31:0] sum;
assign sum = (b + a);
endmodule //adder
[/code][size=3]
[/size][code]
//---------------------------------------------------
//adder.vhd
//---------------------------------------------------
library IEEE;
use IEEE.std_logic_1164.all;
use IEEE.numeric_std.all;
library work;
use work.AESL_components.all;
entity adder is
port (
a : IN STD_LOGIC_VECTOR (31 downto 0);
b : IN STD_LOGIC_VECTOR (31 downto 0);
sum : OUT STD_LOGIC_VECTOR (31 downto 0) );
end;
architecture behav of adder is
begin
sum <= esl_add(b, a);
end behav;
[/code][size=3]
[/size]
±¸×¢£º¼Ó¼õ³Ë³ý¡¢Î»ÔËËã¡¢Âß¼ÔËËãµÈµÈ»ù±¾µÄC/C++ÔËËã¶¼¿ÉÒԺܷ½±ãµÄÓÃAutoPilot×ۺϳɶÔÓ¦µÄRTL´úÂ루verilog/vhdl)[/size]
Ïà¹ØÎĵµ£º
°æÈ¨ÉùÃ÷£ºÔÎĵØÖ·¼°×÷Õß²»Ï꣬ÈçÓÐÇÖȨ£¬ÇëÁªÏµ£»
±¾Îĸø³öÁËÒ»¸öͨÓõÄÏ̳߳ؿò¼Ü£¬¸Ã¿ò¼Ü½«ÓëÏß³ÌÖ´ÐÐÏà¹ØµÄÈÎÎñ½øÐÐÁ˸߲ã´ÎµÄ³éÏó£¬Ê¹Ö®Óë¾ßÌåµÄÖ´ÐÐÈÎÎñÎ޹ء£ÁíÍâ¸ÃÏ̳߳ؾßÓж¯Ì¬ÉìËõÐÔ£¬ËüÄܸù¾ÝÖ´ÐÐÈÎÎñµÄÇáÖØ×Ô¶¯µ÷ÕûÏ̳߳ØÖÐÏ̵߳ÄÊýÁ¿¡£ÎÄÕµÄ×îºó£¬ÎÒÃǸø³öÒ»¸ö¼òµ¥Ê¾Àý³ÌÐò£¬Í¨¹ý¸ÃʾÀý³ÌÐò£¬ÎÒÃǻᷢÏÖ£¬ ......
ÎÄÕÂÀ´×Ô£ºhttp://mayer.vokaa.com/archives/16
¶ÔÓÚÒ»¸öǰ¶Ë¹¤×÷Õߣ¬¶¼ÖªµÀ·ûºÏW3C¹æ·¶¶ÔÓÚÍøÒ³µÄ¿çä¯ÀÀÆ÷¹¤×÷´øÀ´ºÃ´¦£¬²¢ÄÜÊ¹ÍøÒ³ÔÚ²»Í¬µÄä¯ÀÀÆ÷Ö®¼ä»¥Ïà¼æÈÝ¡£
ÔÚÕâÀïÎÒÃÇÒ»Ò»Áоٻ¥ÁªÍøÉÏËùÌṩµÄ½â¾ö°ì·¨¼°Ò»Ð©ÎÒ¸öÈ˵Ľ¨Ò鼰ʵ¼ù°¸Àý¡£
Æäʵ£¬ÏÖÔÚ¶àÊýÈ˶¼»áʹÓÃHackµÄ·½·¨½â¾ö£¬µ«Èç¹ûDIVºÍCSSµÄ½á¹¹ÇåÎú¡¢ºÏÀí£ ......
¿ìËÙÃÝȡģÀíÂÛ»ù´¡£º ¼ÆËã a^b mod c ?
ÓÉ(a x b) mod c=((a mod c) x b) mod c.
ÎÒÃÇ¿ÉÒÔ½« bÏȱíʾ³É¾Í£º
b=at2^t+at-1 2^t-1+……a02^0. (ai=[0,1]).
ÕâÑùÎÒÃÇÓÉ a^b mod c=(a^(at2^t+at-12^t-1+…a02^0)mod c.
È»¶øÎÒÃÇÇó a^(2^(i+1)) ......
ÔÚÖÆ¶¨±ê׼ʱ£¬
C89
ίԱ»á¹Ø×¢ÏÂÁм¸¸öÔÔò£¬ÕâЩÔÔòÖ±µ½½ñÌ컹ÔÚÖ¸µ¼ÎÒÃÇ¿¼ÂÇÎÊÌâ¡£×îÖØÒªµÄ¼¸¸öÔÔòÈçÏ£º
ÏÖ´æ´úÂëºÜÖØÒª£¬¶øÏÖ´æµÄ
C
±àÒëÆ÷ʵÏÖ²¢²»ÖØÒª¡£
C
´úÂëÄܹ»ÊÇ¿ÉÒÆÖ²µÄ¡£
C
´úÂë¿ÉÒÔÊDz»¿ÉÒÆÖ²µÄ¡£
C89
ίԱ»á²»Ï£Íû×èÖ¹
C
³ÌÐòԱд»úÆ÷רÓôúÂ룬ÒòΪÕâÊÇ
C
µÄÒ»¸öÇ¿Ïî¡£ÕâÔì³ÉÁËÑϸñÒ» ......