在NVboard里点亮流水灯
top.v
module top(
input clk,
input rst,
output reg [15:0] led
);
reg [31:0] count;
always @(posedge clk) begin
if (rst) begin led <= 1; count <= 0; end //复位 设置第0位的灯亮起
else begin
if (count == 0) led <= {led[14:0], led[15]}; //等的状态循环移动
count <= (count >= 5000000 ? 32'b0 : count + 1);//循环5000001次对count置零
end
end
endmodule
top.cpp //参考的nvboard的example
#include<nvboard.h>
#include<Vtop.h>
static TOP_NAME dut;
void nvboard_bind_all_pins(TOP_NAME* top);
static void single_cycle(){
dut.clk = 0; dut.eval();
dut.clk = 1; dut.eval();
}
static void reset(int n){
dut.rst = 1;
while(n-->0) single_cycle();
dut.rst = 0;
}
int main(){
nvboard_bind_all_pins(&dut);
nvboard_init();
reset(10);
while(1){
nvboard_update();
single_cycle();
}
}
makefile
TOPNAME = top
NXDC_FILES = constr/

最低0.47元/天 解锁文章
1083

被折叠的 条评论
为什么被折叠?



