FPGA课程设计

发布 2022-09-30 22:18:28 阅读 4583

安康学院。

fpga/sopc课程设计报告书。

设计项目成绩评定表。

设计报告书目录。

一、设计目的 1

二、设计思路 1

三、设计过程 1

3.1、系统总体方案 1

3.2、程序设计具体步骤 2

四、系统调试与结果 8

五、 主要元器件与设备 8

六、课程设计体会与建议 8

6.1、设计体会 8

6.2、设计建议 9

七、 参考文献 9

1. 熟练掌握verilog语言及fpga开发板环境搭建。

2. 熟练应用quartus ii 9.1 (32-bit)

1、顶层模块首先构建add_rca_16

2、第二层由4个4位的rca构成add_rca_16

3、第三层由4个单比特的全加器构成add_rca_4

4、第四层由2个单比特的半加器和一个或门构成全加器add_full

5、第五层由一个与门和一个异或门组成单比特的半加器add_half

顶层符号如图1:

图1 顶层模块。

第二层由4个4位的rca构成add_rca_16如图2:

图2 由4个4位的rca构成add_rca_16

第三层由4个单比特的全加器构成add_rca_4如图3:

图3 由4个单比特的全加器构成add_rca_4

第四层由2个单比特的半加器和一个或门构成全加器add_full如图4

图4由2个单比特的半加器和一个或门构成全加器add_full

第五层由一个与门和一个异或门组成单比特的半加器add_half如图5:

图5 由一个与门和一个异或门组成单比特的半加器add_half

第1步、顶层符号如图6:

图6 顶层符号。

**:module add_rca_16(a, b, c_in, sum, c_out);

input [15:0] a;

input [15:0] b;

input c_in;

output [15:0] sum;

output c_out;

wire c_m0, c_m1, c_m2;

add_rca_4 m0(.a(a[3:0]),b(b[3:0]),c_in(c_in), sum(sum[3:0]),c_out(c_m0));

add_rca_4 m1(.a(a[7:4]),b(b[7:4]),c_in(c_m0), sum(sum[7:4]),c_out(c_m1));

add_rca_4 m2(.a(a[11:8]),b(b[11:8]),c_in(c_m1), sum(sum[11:8]),c_out(c_m2));

add_rca_4 m3(.a(a[15:12]),b(b[15:12]),c_in(c_m2), sum(sum[15:12]),c_out(c_out));

endmodule

测试**:timescale 1ns/1ns

module add_rca_16_tb;

reg [15:0] a, b;

reg c_in;

wire [15:0] sum;

wire c_out;

integer i;

add_rca_16 u1(.a(a), b(b), c_in(c_in), sum(sum), c_out(c_out));

initial

begina = 0; b = 0; c_in = 0;

forever

beginfor(i=0;i<=65535;i=i+1)

begin20 a = i; b = i; c_in = 0;

20 a = i; b = i; c_in = 1;

endend

endendmodule

第2步、第二层由4个4位的rca构成add_rca_16如图7:

图7 4位的rca

**:module add_rca_4(a, b, c_in, sum, c_out);

input [3:0] a;

input [3:0] b;

input c_in;

output [3:0] sum;

output c_out;

wire c_b0, c_b1, c_b2;

add_full b0(.a(a[0]),b(b[0]),c_in(c_in), sum(sum[0]),c_out(c_b0));

add_full b1(.a(a[1]),b(b[1]),c_in(c_b0), sum(sum[1]),c_out(c_b1));

add_full b2(.a(a[2]),b(b[2]),c_in(c_b1), sum(sum[2]),c_out(c_b2));

add_full b3(.a(a[3]),b(b[3]),c_in(c_b2), sum(sum[3]),c_out(c_out));

endmodule

测试**:timescale 1ns/1ns

module add_rca_4_tb;

reg [3:0] a, b;

reg c_in;

wire [3:0] sum;

wire c_out;

integer i

add_rca_4 u1(.a(a), b(b), c_in(c_in), sum(sum), c_out(c_out));

initial

begina = 0; b = 0; c_in = 0;

forever

beginfor(i=0;i<=15;i=i+1)

begin20 a = i; b = i; c_in = 0;

20 a = i; b = i; c_in = 1;

endend

endendmodule

第三步、第三层由4个单比特的全加器构成add_rca_4如图8:

图8 单比特的全加器。

**:module add_full(a, b, c_in, sum, c_out);

input a;

input b;

input c_in;

output sum;

output c_out;

wire sum_h0, c_out_h0, c_out_h1;

add_half h0(.a(a), b(b), sum(sum_h0), c_out(c_out_h0));

add_half h1(.a(c_in), b(sum_h0), sum(sum), c_out(c_out_h1));

or (c_out, c_out_h0, c_out_h1);

endmodule

测试**:`timescale 1ns/1ns

module add_full_tb;

reg a, b, c_in;

wire sum, c_out;

add_full u1(.a(a), b(b), c_in(c_in), sum(sum), c_out(c_out));

initial

begina = 0; b = 0; c_in = 0;

forever

begin20 a = 0; b = 0; c_in = 0;

20 a = 1; b = 0; c_in = 0;

20 a = 0; b = 1; c_in = 0;

20 a = 1; b = 1; c_in = 0;

20 a = 0; b = 0; c_in = 1;

20 a = 1; b = 0; c_in = 1;

20 a = 0; b = 1; c_in = 1;

20 a = 1; b = 1; c_in = 1;

endend

endmodule

第四步、第四层由2个单比特的半加器和一个或门构成全加器add_full如图3.2.4:

图9 单比特的半加器。

**:module add_half(a, b, sum, c_out);

input a;

input b;

output sum;

output c_out;

and (c_out, a, b);

xor (sum, a, b);

endmodule

测试**:timescale 1ns/1ns

module add_half_tb;

reg a, b;

wire sum, c_out;

add_half u1(.a(a), b(b), sum(sum), c_out(c_out));

initial

begina = 0; b = 0;

forever

begin20 a = 0; b = 0;

20 a = 0; b = 1;

20 a = 1; b = 0;

20 a = 1; b = 1;

endend

endmodule

1、在quartus ii上运行无误如图10:

图10 编译结果。

2、在modelsim调试结果如图11:

图11 调试结果。

电脑一台、fpga开发板一台。

FPGA课程设计

黑龙江大学。fpga通信模块设计。专业 通信工程。学号 20085415 姓名 王琪。fpga通信模块设计。1 现代数字信号处理。随着电子技术和集成电路技术的飞速发展,数字信号处理已广泛应用于语音 图像处理,通信和多 等领域中。傅立叶变换 dft 作为其数字信号处理中的基本运算,发挥着重要作用。特别...

fpga课程设计

异步数据复接设计。孟伟荣 201222250226 空天院。根据3个时钟的不同速率,如果最终的并行输出是同步字节 对应数据的结构,可以发现aa 两帧第一路数据 bb 三帧第二路数据 cc正好满足要求。其中aabbcc均以16进制数据表示。aa,bb,cc分别使用一个byte的寄存器。本设计中为使结果...

FPGA课程设计

fpga课。程。设。计。专业 10级电子信息工程。班级 1班。姓名 傅雅琦。学号 100102011120 指导教师 祝宏。制作日期 2012年12月13日。1.模为100的可加减计数器。1.标题及任务书。第一阶段 熟悉设计要求构造大致思路。第二阶段 图书馆查阅资料,仿照例子编程。第三阶段 开始编程...