时间:2024-07-26 来源:网络搜集 关于我们 0
1.1比特币与FPGA
注意:不是让大家去玩比特币,我们是研究技术,不是当韭菜。
https://www.8btc.com/wiki/bitcoin-a-peer-to-peer-electronic-cash-system
比特币白皮书:一种点对点的电子现金系统(中本聪论文的翻译版)
哈希算法:散列算法,把任意长度的输入,通过散列算法,变换成固定长度的输出。安全散列算法(SHA)是一个密码散列函数家族,包括SHA-1、SHA-224、SHA-256、SHA-384,和SHA-512。
https://www.iqiyi.com/v_19rr1bvqbk.html#curid=1119809900_a25cedbd460aed74ca861b5db384059d
千峰区块链
矿机进化:CPU-GPU-FPGA/GPU-ASIC/GPU
Nivida :CUDA基本运算
https://wenku.baidu.com/view/d00677c94128915f804d2b160b4e767f5acf8019.html?from=search
FPGA芯片主 要由可编程输入输出单元、基本可编程逻辑单元,布线资源构成。
逻辑门电路与LUT
1.2 软件和乘法器的乘法计算
以50000*5000为例,需要上百个时钟周期。
50000*5000为例,只需一个周期。
乘法器结构图
1.3 microblaze和DDR2的 blockdesign
microblaze连接AXI总线的各种IP,很方便实现对各种器件的操作。
1.4 设计代码
blockdesign的原理图VIVADO自动生成VHDL。
module design_1
(DDR2_addr,
DDR2_ba,
DDR2_cas_n,
DDR2_ck_n,
DDR2_ck_p,
DDR2_cke,
DDR2_dm,
DDR2_dq,
DDR2_dqs_n,
DDR2_dqs_p,
DDR2_odt,
DDR2_ras_n,
DDR2_we_n,
init_calib_complete,
reset,
rs232_uart_rxd,
rs232_uart_txd,
sys_diff_clock_clk_n,
sys_diff_clock_clk_p);
1.5 综合后的原理图
编译得到门级网表之后映射到LUT中,形成门级电路。
时序约束
1.6 管脚分配
分配管脚,管脚电平标准,驱动能力,上下拉等操作。
1.7 布局布线后的版图
lut
布线
IOB
1.8 仿真
1.9 软件设计
1.9.1 硬件平台
每个外设都映射到一块地址区间上。
1.9.2 Bsp文件
软件根据IP自动生成的配置文件,库文件,例子文件等。
1.9.3 软件代码编写
理清函数,指针的概念和用法。
#include <stdio.h>
#include "platform.h"
#include "xil_printf.h"
#include"xil_io.h"
int main()
{
init_platform();
int a,b,c;
a=50000;
b=50000;
Xil_Out32(XPAR_BRAM_0_BASEADDR, 0x55555555);
c=a*b;
Xil_Out32(XPAR_BRAM_0_BASEADDR, c);
cleanup_platform();
return 0;
}