Bitcoin Forum
February 07, 2023, 09:30:11 AM *
News: Latest Bitcoin Core release: 24.0.1 [Torrent]
 
   Home   Help Search Login Register More  
Pages: [1]
  Print  
Author Topic: FPGA  (Read 1572 times)
lordfantom (OP)
Newbie
*
Offline Offline

Activity: 43
Merit: 0


View Profile
April 23, 2013, 08:49:56 AM
 #1

Интересует вопрос запуска ядра  SHA 256
например вот от сюда https://github.com/fpgaminer/Open-Source-FPGA-Bitcoin-Miner/tree/master/cores/unoptimized
на ModelSim

интересуюсь в плане изучения Verilog
1675762211
Hero Member
*
Offline Offline

Posts: 1675762211

View Profile Personal Message (Offline)

Ignore
1675762211
Reply with quote  #2

1675762211
Report to moderator
In order to achieve higher forum ranks, you need both activity points and merit points.
Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction.
lordfantom (OP)
Newbie
*
Offline Offline

Activity: 43
Merit: 0


View Profile
April 24, 2013, 07: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
Xtc
Legendary
*
Offline Offline

Activity: 1972
Merit: 1028


;u


View Profile WWW
April 24, 2013, 11:26:45 AM
 #3

Quote
ну что никто на Verilog не пишет что ли ))
Видимо только на VHDL  Grin
lordfantom (OP)
Newbie
*
Offline Offline

Activity: 43
Merit: 0


View Profile
April 24, 2013, 12:38:56 PM
 #4

вот оно че Михалыч  Grin


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

http://s018.radikal.ru/i514/1304/a1/1f680cb0fd19.jpg
legonxt
Newbie
*
Offline Offline

Activity: 3
Merit: 0


View Profile
April 25, 2013, 02:04:19 PM
 #5

Quote
ну что никто на Verilog не пишет что ли ))
Видимо только на VHDL  Grin
а какой-нить другой проект на фпга перенести ктонить возьмется? у меня даже исходники примерочные какие-то есть. и ФПГА. Smiley
lordfantom (OP)
Newbie
*
Offline Offline

Activity: 43
Merit: 0


View Profile
April 26, 2013, 03:46:31 AM
 #6

Исходник на чем написан Huh?
asion
Newbie
*
Offline Offline

Activity: 24
Merit: 0


View Profile
April 27, 2013, 10:38:16 AM
 #7

lordfantom, какие результаты получились?
lordfantom (OP)
Newbie
*
Offline Offline

Activity: 43
Merit: 0


View Profile
May 09, 2013, 01:32:42 PM
 #8

Результат один для куска SHA256 а их там 8 штук (DIGESTER)
требуется около 3500 ЛЯ
Spartan-6 LX9 или LX9  как раз подходит )))
остается их только собрать как то вместе )))

asion
Newbie
*
Offline Offline

Activity: 24
Merit: 0


View Profile
May 09, 2013, 08:52:41 PM
 #9

Хм, всего 3к5 лялов... Я для альтеры собирал прожект с опенсорсного фпгаминера, который для DE-115, так там >70К вышло. Не разбирался правда почему )
lordfantom (OP)
Newbie
*
Offline Offline

Activity: 43
Merit: 0


View Profile
May 10, 2013, 06:16:49 PM
 #10

Все правильно для  запуска только ядра SHA 256 надо 28 к ЛЯ )))
в битке их два + простой RS232 )))

идея в том что бы разделить модули ( 8 штук ) на разные физ FPGA (желательно дешевые)
+ поднятие частоты
asion
Newbie
*
Offline Offline

Activity: 24
Merit: 0


View Profile
May 10, 2013, 06:28:40 PM
 #11

Так гелионовский fast hash core для циклона 1281 LEs юзает, если даташиту верить. чето гдето не вьезжаю )
lordfantom (OP)
Newbie
*
Offline Offline

Activity: 43
Merit: 0


View Profile
May 10, 2013, 07:19:08 PM
 #12

заместо SPARTAN 6 LX 150
8 LX 4 или 9 так понятно
asion
Newbie
*
Offline Offline

Activity: 24
Merit: 0


View Profile
May 10, 2013, 08:22:45 PM
 #13

Это то понятно. я про другое..
rPman
Legendary
*
Offline Offline

Activity: 1120
Merit: 1069


View Profile WWW
May 11, 2013, 06:06:58 AM
 #14

Может там не тупо развернуты циклы в одну большую портянку, а по мудрее, наоборот циклы оставлены, но проходят они за один такт?

Здесь не может находиться ваша реклама Smiley
Protect a future of bitcoin, use p2pool
Donation in BTC: 19fv5yYtfWZ9jQNjx2ncmu1TTrvg5CczZe
asion
Newbie
*
Offline Offline

Activity: 24
Merit: 0


View Profile
May 11, 2013, 12:05:32 PM
 #15

незнаю, на фришное мыло неотвечают, а корп увидят темболее пошлют)
lordfantom (OP)
Newbie
*
Offline Offline

Activity: 43
Merit: 0


View Profile
May 14, 2013, 02:26:06 AM
 #16

один DIGESTER

http://s40.radikal.ru/i089/1305/d4/50a9dceddeb0.jpg
lordfantom (OP)
Newbie
*
Offline Offline

Activity: 43
Merit: 0


View Profile
May 15, 2013, 04: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

притом что коллизи будут , вопрос сколько их
asion
Newbie
*
Offline Offline

Activity: 24
Merit: 0


View Profile
May 17, 2013, 05: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гб нужно держать в памяти, так как нужна скорость. Можно конечно попробовать пейджфайл раздуть и сунуть его на шустрый ссд винт, тогда много физ. оперативы не надо.

з.ы. имхо


Pages: [1]
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!