八位二进制BCD码转换器Word下载.docx
《八位二进制BCD码转换器Word下载.docx》由会员分享,可在线阅读,更多相关《八位二进制BCD码转换器Word下载.docx(9页珍藏版)》请在冰豆网上搜索。
五.实验内容
在XilinxISE10.1上完成8位二进制-BCD码转换器设计,输入设计文件,仿真后,生成二进制码流文件下载到FPGA开发板上进行验证;
1)依照实验1的方式,在XilinxISE10.1中新建一个工程example02;
2)在工程管理区任意位置单击鼠标右键,在弹出的快捷菜单中选择“NewSource”命令,弹出新建源代码对话框,这里我们选择“VerilogModule”类型,输入Verilog文件名“binbcd8.v”,完整代码如下:
modulebinbcd8(
input[7:
0]b,
outputreg[9:
0]p
);
reg[17:
0]z;
integeri;
always@(*)
begin
for(i=0;
i<
=17;
i=i+1)
z[i]=0;
z[10:
3]=b;
repeat(5)//重复5次
begin
if(z[11:
8]>
4)
z[11:
8]=z[11:
8]+3;
if(z[15:
12]>
z[15:
12]=z[15:
12]+3;
z[17:
1]=z[16:
0];
end
p=z[17:
8];
end
endmodule
3)设计相应的7段显示管程序,将相应的十进制数在开发板的显示管上显示出来。
建立文件类型为“VerilogModule”的“x7segb.v”,完整代码如下
modulex7segb(
input[15:
0]x,
inputclk,
inputclr,
outputreg[6:
0]a_to_g,
outputreg[3:
0]an,
outputdp
wire[1:
0]s;
reg[3:
0]digit;
wire[3:
0]aen;
reg[19:
0]clkdiv;
assigndp=1;
assigns=clkdiv[19:
18];
assignaen[3]=x[15]|x[14]|x[13]|x[12];
assignaen[2]=x[15]|x[14]|x[13]|x[12]
|x[11]|x[10]|x[9]|x[8];
assignaen[1]=x[15]|x[14]|x[13]|x[12]
|x[11]|x[10]|x[9]|x[8]
|x[7]|x[6]|x[5]|x[4];
assignaen[0]=1;
//4位4选1
case(s)
0:
digit=x[3:
1:
digit=x[7:
4];
2:
digit=x[11:
3:
digit=x[15:
12];
default:
digit=x[3:
endcase
//数码管显示
always@(*)
case(digit)
a_to_g=7'
b0000001;
b1001111;
b0010010;
b0000110;
4:
b1001100;
5:
b0100100;
6:
b0100000;
7:
b0001111;
8:
b0000000;
9:
b0000100;
'
hA:
b0001000;
hB:
b1100000;
hC:
b0110001;
hD:
b1000010;
hE:
b0110000;
hF:
b0111000;
//0
endcase
//digitselect
an=4'
b1111;
if(aen[s]==1)
an[s]=0;
//时钟分频器
always@(posedgeclkorposedgeclr)
if(clr==1)
clkdiv<
=0;
else
=clkdiv+1;
end
Endmodule
4)设计8位二进制-BCD码转换器的顶层模块,如图3所示,下面的程序清单给出了实现这个顶层模块设计的Verilog程序,文件名为“binbcd8_top.v。
图3.顶层模块
modulebinbcd8_top(
inputmclk,
input[3:
3]btn,
0]sw,
output[7:
0]led,
output[6:
0]seg,
output[3:
wire[15:
0]x;
wire[9:
0]p;
assignx={6'
b000000,p};
assignled=sw;
binbcd8B1(.b(sw),
.p(p)
);
x7segbM1(.x(x),
.clk(mclk),
.clr(btn[3]),
.a_to_g(seg),
.an(an),
.dp(dp)
5)导入其UCF文件,并进行编辑,代码如下:
NET"
mclk"
LOC="
B8"
;
btn<
3>
"
A7"
sw<
0>
P11"
1>
L3"
2>
K3"
B4"
4>
G3"
5>
F3"
6>
E2"
7>
N3"
Led<
M5"
M11"
P7"
P6"
N5"
N4"
P4"
G1"
seg<
L14"
H12"
N14"
N11"
P12"
L13"
M12"
dp"
N13"
an<
F12"
J12"
M13"
K14"
6)进行综合和实现,然后生成二进制比特文件。
7)将生成的二进制比特文件下载到开发板上,观察运行结果。
六.实验结果
七.实验心得及体会
通过本次实验让我了解了8位二进制—BCD码转换器的工作原理。
也让我更加熟悉了ise软件的使用,对Verilog语法有了更深的理解,在本次实验中由于忽略了语法错误,导致实验完成花费了很长时间,让我更了解了Verilog语法的重要性。