1、五实验内容在Xilinx ISE 10.1上完成8位二进制-BCD码转换器设计,输入设计文件,仿真后,生成二进制码流文件下载到FPGA开发板上进行验证;1)依照实验1的方式,在Xilinx ISE 10.1中新建一个工程example02;2)在工程管理区任意位置单击鼠标右键,在弹出的快捷菜单中选择“New Source”命令,弹出新建源代码对话框,这里我们选择“Verilog Module”类型,输入Verilog文件名“binbcd8.v”,完整代码如下:module binbcd8( input 7:0 b, output reg 9:0 p ); reg 17:0 z; integer
2、 i; always (*) begin for (i=0;i4) z11:8=z11:8+3; if (z15:12 z15:12=z15:12+3; z17:1=z16:0; end p=z17:8; end endmodule3)设计相应的7段显示管程序,将相应的十进制数在开发板的显示管上显示出来。建立文件类型为“Verilog Module”的“x7segb.v”,完整代码如下module x7segb( input 15:0 x, input clk, input clr, output reg 6:0 a_to_g, output reg 3:0 an, output dp wir
3、e1:0 s; reg3:0 digit; wire3:0 aen; reg19:0 clkdiv; assign dp=1; assign s=clkdiv19:18; assign aen3=x15|x14|x13|x12; assign aen2=x15|x14|x13|x12 |x11|x10|x9|x8; assign aen1=x15|x14|x13|x12 |x11|x10|x9|x8 |x7|x6|x5|x4; assign aen0=1; /4位4选1 case(s) 0:digit=x3: 1:digit=x7:4; 2:digit=x11: 3:digit=x15:12;
4、 default: digit=x3: endcase/数码管显示always (*) case (digit) a_to_g = 7b0000001;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; / 0endcase /digit select an=4b1111; if(aens=1) ans=
5、0; /时钟分频器 always (posedge clk or posedge clr) if(clr=1) clkdiv=0; else=clkdiv+1;endEndmodule4)设计8位二进制-BCD码转换器的顶层模块,如图3所示,下面的程序清单给出了实现这个顶层模块设计的Verilog程序,文件名为“binbcd8_top.v。图3. 顶层模块module binbcd8_top( input mclk, input 3:3 btn,0 sw, output 7:0 led, output 6:0 seg, output 3: wire 15:0 x; wire 9:0 p; as
6、sign x=6b000000,p; assign led=sw; binbcd8 B1 (.b(sw), .p(p) ); x7segb M1 (.x(x), .clk(mclk), .clr(btn3), .a_to_g(seg), .an(an), .dp(dp)5)导入其UCF文件,并进行编辑,代码如下:NET mclk LOC = B8;btnA7swP111L32K3B44G35F36E27N3LedM5M11P7P6N5N4P4G1segL14H12N14N11P12L13M12dpN13anF12J12M13K146)进行综合和实现,然后生成二进制比特文件。7)将生成的二进制比特文件下载到开发板上,观察运行结果。六实验结果七实验心得及体会 通过本次实验让我了解了8位二进制BCD码转换器的工作原理。也让我更加熟悉了ise软件的使用,对Verilog语法有了更深的理解,在本次实验中由于忽略了语法错误,导致实验完成花费了很长时间,让我更了解了Verilog语法的重要性。
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1