大规模数字逻辑课程设计-流水灯设计.docVIP

  • 20
  • 0
  • 约5.35千字
  • 约 11页
  • 2016-11-25 发布于贵州
  • 举报

 大规模数字逻辑课程设计-流水灯设计.doc

 大规模数字逻辑课程设计-流水灯设计

大规模数字逻辑课程设计 题目:流水灯设计 学 号: XXX 姓 名: XXX 班 级: XXX 目录 1. 流水灯控制的实验要求与思路 3 1.1实验要求 3 1.2实验思路 3 2. 系统逻辑设计: 4 3.源程序代码 4 (1)分频器部分 4 (2)控制模块 5 4.实验步骤: 7 5. 实验原理图: 7 6.分配管脚 8 7.运行界面: 8 8.总结与体会 10 9.参考文献 10 流水灯控制的实验要求与思路 1.1实验要求 在流水灯控制系统中,要求开发板上的8个LED灯依次以0.5S的时间间隔从上到下再下到上的顺序点亮,然后分别以1S、1.5S、2S的时间间隔和相同顺序点亮8个LED灯,以此为一个循环,重复以上四个步骤就可以实现流水灯系统的自动循环运作。 1.2实验思路 根据时钟信号的脉冲输入,我们以改变每个LED点亮状态的保持的时间来改变LED的变换间隔时间,根据LED的循环点亮和时间间隔的改变设计成为一个直观的LED流水灯自动循环系统,由此思路我们就可以很容易的着手流水灯控制程序的设计。 系统逻辑设计: 根据以上的设计要求,运用模块化的设计思路,我们在Quartus II8.0 软件系统中设计了LED流水灯控制模块、分频器模块,并通过各个模块程序之间的端口合理连接和协调,成功设计出LED流水灯灯控制电路,得到逻辑结构原理图,即为整个流水灯控制电路的逻辑结构。使用VerilogHDL语言设计相应的模块。 3.源程序代码 (1)// 分频器部分 ,获得便于试验观察的时钟信号 module clk_div(clk_out,clk_in); input clk_in; output clk_out; reg clk_out; integer counter; parameter cnt=25_000_000; always @(posedge clk_in) begin counter=counter+1; if(counter==cnt/2-1) begin clk_out=!clk_out; counter=0; end end endmodule (2)//控制模块: module lsd(clk,led); input clk; output [7:0]led;// 输出端口定义为寄存器型 reg [7:0] count; reg [7:0] count1; reg [7:0] count2; reg [7:0] led; reg [3:0] state; always @(posedge clk)// always语句,表示每当CLK的上升沿到来时,完成begin-end之间语句的操作 begin count=count+1; if(count17) begin state = state + 4b0001; // one clk,one state case(state) 4b0000: led = 8 //the 1st state 4b0001: led = 8 4b0010: led = 8 4b0011: led = 8 4b0100: led = 8 4b0101: led = 8 4b0110: led = 8 4b0111: led = 8 4b1000: led = 8 4b1001: led = 8 4b1010: led = 8 4b1011: led = 8 4b1100: led = 8 4b1101: led = 8 4b1110: led = 8 4b1111: led = 8

文档评论(0)

1亿VIP精品文档

相关文档