八位二进制BCD码转换器Word下载.docx

上传人:b****6 文档编号:16243201 上传时间:2022-11-21 格式:DOCX 页数:9 大小:1.59MB
下载 相关 举报
八位二进制BCD码转换器Word下载.docx_第1页
第1页 / 共9页
八位二进制BCD码转换器Word下载.docx_第2页
第2页 / 共9页
八位二进制BCD码转换器Word下载.docx_第3页
第3页 / 共9页
八位二进制BCD码转换器Word下载.docx_第4页
第4页 / 共9页
八位二进制BCD码转换器Word下载.docx_第5页
第5页 / 共9页
点击查看更多>>
下载资源
资源描述

八位二进制BCD码转换器Word下载.docx

《八位二进制BCD码转换器Word下载.docx》由会员分享,可在线阅读,更多相关《八位二进制BCD码转换器Word下载.docx(9页珍藏版)》请在冰豆网上搜索。

八位二进制BCD码转换器Word下载.docx

五.实验内容

在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语法的重要性。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 职业教育 > 职高对口

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1