Author

Topic: FPGA (Read 1579 times)

newbie
Activity: 24
Merit: 0
May 17, 2013, 01:12:56 AM
#18
2^32 вариантов *4 байта /1024/1024/1024 это 16 гигов 1 табла.
предварительно посчитать можем только
#define Sig0(x)    (S(2,x)^S(13,x)^S(22,x))
#define Sig1(x)    (S(6,x)^S(11,x)^S(25,x))
#define theta0(x)  (S(7,x)^S(18,x)^R(3,x))
#define theta1(x)  (S(17,x)^S(19,x)^R(10,x))
где
#define S(n,x) (((x)>>n) | ((x)<<(32-n)))
#define R(n,x) ((x)>>n)

итого 64гб нужно держать в памяти, так как нужна скорость. Можно конечно попробовать пейджфайл раздуть и сунуть его на шустрый ссд винт, тогда много физ. оперативы не надо.

з.ы. имхо


newbie
Activity: 43
Merit: 0
May 15, 2013, 12:50:35 AM
#17
Все таки радужные таблицы на sh256 это конечно фантастика
но вот на digester(кусок алгоритма ) это вполне возможно
  т.е.надо перебрать все варианты 64 слов по 32 бита
пропущенные через функцию

 Основной цикл:
    для i от 0 до 63
        Σ0 := (a rotr 2) xor (a rotr 13) xor (a rotr 22)
        Ma := (a and b) xor (a and c) xor (b and c)
        t2 := Σ0 + Ma
        Σ1 := (e rotr 6) xor (e rotr 11) xor (e rotr 25)
        Ch := (e and f) xor ((not e) and g)
        t1 := h + Σ1 + Ch + k + w

        h := g
        g := f
        f := e
        e := d + t1
        d := c
        c := b
        b := a
        a := t1 + t2

притом что коллизи будут , вопрос сколько их
newbie
Activity: 43
Merit: 0
May 13, 2013, 10:26:06 PM
#16
newbie
Activity: 24
Merit: 0
May 11, 2013, 08:05:32 AM
#15
незнаю, на фришное мыло неотвечают, а корп увидят темболее пошлют)
legendary
Activity: 1120
Merit: 1069
May 11, 2013, 02:06:58 AM
#14
Может там не тупо развернуты циклы в одну большую портянку, а по мудрее, наоборот циклы оставлены, но проходят они за один такт?
newbie
Activity: 24
Merit: 0
May 10, 2013, 04:22:45 PM
#13
Это то понятно. я про другое..
newbie
Activity: 43
Merit: 0
May 10, 2013, 03:19:08 PM
#12
заместо SPARTAN 6 LX 150
8 LX 4 или 9 так понятно
newbie
Activity: 24
Merit: 0
May 10, 2013, 02:28:40 PM
#11
Так гелионовский fast hash core для циклона 1281 LEs юзает, если даташиту верить. чето гдето не вьезжаю )
newbie
Activity: 43
Merit: 0
May 10, 2013, 02:16:49 PM
#10
Все правильно для  запуска только ядра SHA 256 надо 28 к ЛЯ )))
в битке их два + простой RS232 )))

идея в том что бы разделить модули ( 8 штук ) на разные физ FPGA (желательно дешевые)
+ поднятие частоты
newbie
Activity: 24
Merit: 0
May 09, 2013, 04:52:41 PM
#9
Хм, всего 3к5 лялов... Я для альтеры собирал прожект с опенсорсного фпгаминера, который для DE-115, так там >70К вышло. Не разбирался правда почему )
newbie
Activity: 43
Merit: 0
May 09, 2013, 09:32:42 AM
#8
Результат один для куска SHA256 а их там 8 штук (DIGESTER)
требуется около 3500 ЛЯ
Spartan-6 LX9 или LX9  как раз подходит )))
остается их только собрать как то вместе )))

newbie
Activity: 24
Merit: 0
April 27, 2013, 06:38:16 AM
#7
lordfantom, какие результаты получились?
newbie
Activity: 43
Merit: 0
April 25, 2013, 11:46:31 PM
#6
Исходник на чем написан Huh?
newbie
Activity: 3
Merit: 0
April 25, 2013, 10:04:19 AM
#5
Quote
ну что никто на Verilog не пишет что ли ))
Видимо только на VHDL  Grin
а какой-нить другой проект на фпга перенести ктонить возьмется? у меня даже исходники примерочные какие-то есть. и ФПГА. Smiley
newbie
Activity: 43
Merit: 0
April 24, 2013, 08:38:56 AM
#4
вот оно че Михалыч  Grin


s018.radikal.ru/i514/1304/a1/1f680cb0fd19.jpg

http://s018.radikal.ru/i514/1304/a1/1f680cb0fd19.jpg
Xtc
legendary
Activity: 1972
Merit: 1028
;u
April 24, 2013, 07:26:45 AM
#3
Quote
ну что никто на Verilog не пишет что ли ))
Видимо только на VHDL  Grin
newbie
Activity: 43
Merit: 0
April 24, 2013, 03:40:56 AM
#2
ну что никто на Verilog не пишет что ли ))
нужно то вот этот модуль отрисовать )))


module sha256_digester (clk, k, rx_w, rx_state, tx_w, tx_state);

input clk;
input [31:0] k;
input [511:0] rx_w;
input [255:0] rx_state;

output reg [511:0] tx_w;
output reg [255:0] tx_state;


wire [31:0] e0_w, e1_w, ch_w, maj_w, s0_w, s1_w;


e0   e0_blk   (rx_state[`IDX(0)], e0_w);
e1   e1_blk   (rx_state[`IDX(4)], e1_w);
ch   ch_blk   (rx_state[`IDX(4)], rx_state[`IDX(5)], rx_state[`IDX(6)], ch_w);
maj   maj_blk   (rx_state[`IDX(0)], rx_state[`IDX(1)], rx_state[`IDX(2)], maj_w);
s0   s0_blk   (rx_w[63:32], s0_w);
s1   s1_blk   (rx_w[479:448], s1_w);

wire [31:0] t1 = rx_state[`IDX(7)] + e1_w + ch_w + rx_w[31:0] + k;
wire [31:0] t2 = e0_w + maj_w;
wire [31:0] new_w = s1_w + rx_w[319:288] + s0_w + rx_w[31:0];


reg [511:0] w_buf = 0, w_buf2 = 0;
reg [255:0] state_buf = 0, state_buf2 = 0;


always @ (posedge clk)
begin
w_buf[511:480] <= new_w;
w_buf[479:0] <= rx_w[511:32];

state_buf[`IDX(7)] <= rx_state[`IDX(6)];
state_buf[`IDX(6)] <= rx_state[`IDX(5)];
state_buf[`IDX(5)] <= rx_state[`IDX(4)];
state_buf[`IDX(4)] <= rx_state[`IDX(3)] + t1;
state_buf[`IDX(3)] <= rx_state[`IDX(2)];
state_buf[`IDX(2)] <= rx_state[`IDX(1)];
state_buf[`IDX(1)] <= rx_state[`IDX(0)];
state_buf[`IDX(0)] <= t1 + t2;

{w_buf2, state_buf2} <= {w_buf, state_buf};
{tx_w, tx_state} <= {w_buf2, state_buf2};
end
newbie
Activity: 43
Merit: 0
April 23, 2013, 04:49:56 AM
#1
Интересует вопрос запуска ядра  SHA 256
например вот от сюда https://github.com/fpgaminer/Open-Source-FPGA-Bitcoin-Miner/tree/master/cores/unoptimized
на ModelSim

интересуюсь в плане изучения Verilog
Jump to: