文档详情

Vivado实验01流水灯仿真实验及下板步骤

枫**
实名认证
店铺
DOCX
4.10MB
约33页
文档ID:402851259
Vivado实验01流水灯仿真实验及下板步骤_第1页
1/33

一、建工程1. 翻开Vivado ,界面如下:2. 点击上述界面中的Create New Project ,弹出建工程向导,依次点击Next:3. 板卡选项分别为Family: Artix-7Sub-Family: Artix-7Package: csg324 Speed grade: -1 Temp grade: C于是,Part 选择xc7a100tcsg324-1,然后下一步点击Next Finish;二、设计文件输入1. 如以下图,点击输入设计程序:2. 如以下图,选择建文件,依次创立 4 个 verilog 文件,文件名依次为:clock_div; ctc; s_74ls138; led_light留意:最终一个为顶层文件,文件名与工程的文件名一样,且所知名称中不能消灭中文、空格和符号3. 双击翻开,然后输入依次设计程序:留意:每次输入一个设计程序最好保存一次,保存操作如以下图然后重复步骤,将 4 个设计程序依次输入保存4. 添加仿真文件:5. 进入仿真,点击 Run Simulation Run Behavioral Simulation6. 调整缩小按钮,将间隔调整为1s,便利观看试验结果,然后点击上方运行按钮进展仿真, 接着点击弹出的信息条的Background 将其隐蔽,即可看到完整的仿真循环结果7. 仿真结果如以下图:三、下板操作1. 仿真完成后,先关闭仿真,操作如以下图:2. 接着进展下一步综合,如以下图操作:3. 综合处成功后,要进展实现操作,如以下图:4. 实现成功后进展下一步,管脚约束,操作如以下图:留意:此处需用到板卡手册,请使用教师群共享的文件“Nexys4-DDR_rm”,此为配适的较版本,否则可能消灭错误5. 约束文件生成后,更改为I/O 操作界面:6. 此处不能使用默认电压值,否则会报错,更改电压值为,然后将时钟引脚接至 E3,复位引脚接至C12,y0 至y7 输出接至V16、T15、U14、T16、V15、V14、V15、V11,引脚的连接方式有三种,全部操作如以下图:7. 约束完成后,关闭保存:8. 在源程序文档中的约束文件中可以看到刚刚操作生成的约束文件,也可以直接在约束文件中直接输入代码来完成管教的约束和更改:9. 约束完成后,生成编程文件:10. 此时需要连接板卡到电脑,在此之前需要对板卡进展设置:11. 连接电脑,翻开电源开关,等待驱动安装完成后,翻开Hardware Manager Open a new hardware target 在跳出的提示框中始终点击Next,不需更改,直到Finish Program device 选择板卡 xc7a100t_0 在跳出的选择框中点击ok,这时就可以观看到仿真结果中的流水灯效果,以上为识别板卡到把编程文件下载到板卡的无脑操作,具体步骤请看以下图:12. 观看到板卡上的试验结果正确后,试验到此完毕,关闭板卡的电源开关,拔出板卡,以上。

四、附录 Verilog 流水灯试验源程序第一步 设计电路一个分频器一个 3 位计数器一个 38 译码器其次步 设计各元器件的verilog 代码;分频器module clock_div(clk,clk_sys);input clk; output clk_sys; reg clk_sys =0;reg[25:0] div_counter = 0;always @(posedge clk) begin if (div_counter > ) beginclk_sys <= ~clk_sys; div_counter <= 0;endelse begindiv_counter <= div_counter+1;endend endmodule其次步 设计各元器件的verilog 代码; 3 位计数器module ctc(clk,reset,count );input clk,reset; output reg[2:0] count;always @(posedge clk or negedge reset) begin if (reset == 0) begincount =0;endelse beginif (count == 0) count =7;else begincount =count-1;endendendendmodule其次步 设计各元器件的verilog 代码; 38 译码器module s_74ls138(Y0, Y1, Y2, Y3, Y4, Y5, Y6, Y7, A0, A1, A2, Enable);input A0,A1,A2,Enable;output reg Y0,Y1,Y2,Y3,Y4,Y5,Y6,Y7;always @(A0 or A1 or A2 or Enable) begin if(!Enable){Y7,Y6,Y5,Y4,Y3,Y2,Y1,Y0} <= 8”b0000_0000;else begincase ({A2,A1,A0})3”b000 :{Y7,Y6,Y5,Y4,Y3,Y2,Y1,Y0}<=8”b0000_0001;3”b001 :{Y7,Y6,Y5,Y4,Y3,Y2,Y1,Y0}<=8”b0000_0010;3”b010 :{Y7,Y6,Y5,Y4,Y3,Y2,Y1,Y0}<=8”b0000_0100;3”b011 :{Y7,Y6,Y5,Y4,Y3,Y2,Y1,Y0}<=8”b0000_1000;3”b100 :{Y7,Y6,Y5,Y4,Y3,Y2,Y1,Y0}<=8”b0001_0000;3”b101 :{Y7,Y6,Y5,Y4,Y3,Y2,Y1,Y0}<=8”b0010_0000;3”b110 :{Y7,Y6,Y5,Y4,Y3,Y2,Y1,Y0}<=8”b0100_0000;3”b111 :{Y7,Y6,Y5,Y4,Y3,Y2,Y1,Y0}<=8”b1000_0000;default : {Y7,Y6,Y5,Y4,Y3,Y2,Y1,Y0} <= 8”b0000_0000;endcaseendend endmodule第三步 设计一个总电路〔顶层文件〕module led_light(clock,reset,y0,y1,y2,y3,y4,y5,y6,y7 );input clock,reset;output y0,y1,y2,y3,y4,y5,y6,y7; wire clk_sys;wire[2:0] count;clock_div u0(.clk(clock),.clk_sys(clk_sys)); s_74ls138u1(.A0(count[0]),.A1(count[1]),.A2(count[2]),.Enable(reset),.Y0(y0),.Y1(y1),.Y2(y2),.Y3(y3),.Y4(y4),.Y5(y5),.Y6(y6),.Y7(y7));ctc u2(.clk(clk_sys),.reset(reset),.count(count)); endmodule第四步 设计一个仿真文件module led_sim( );reg clock =0;reg reset =0; wire y0;wire y1; wire y2; wire y3; 。

下载提示
相似文档
正为您匹配相似的精品文档