#牛客在线求职答疑中心#:4位流水灯控制器 题目要求: 设计一个4位流水灯控制器,其控制4个LED灯按顺序亮灭。该控制器应具有一个“向左”或“向右”滚动的功能,并且能够在一定时间间隔内将灯从左到右或从右到左依次点亮。 功能要求: • 输入:时钟信号 clk 和方向控制信号 dir(dir = 0 表示向左滚动,dir = 1 表示向右滚动)。 • 输出:4个LED灯的状态 LED[3:0]。 • 控制:当 dir = 0 时,LED灯按左向右方向滚动;当 dir = 1 时,LED灯按右向左方向滚动。 • 计时:灯光每次变换的间隔为 1秒。 测试平台(testbench): module FlowLights_tb; reg clk, dir; wire [3:0] LED; FlowLights uut ( .clk(clk), .dir(dir), .LED(LED) ); initial begin clk = 0; dir = 0; // 默认向左滚动 #10 dir = 1; // 改为向右滚动 #100; $finish; end always #5 clk = ~clk; // 时钟信号 endmodule