EDA复习之模10计数器

module jishuqi10(CLK,rst,en,load,cout,dout,data);

input CLK,rst,en,load;

input [3:0]data;

output [3:0]dout;

output cout;
reg [3:0]q1;
reg cout;

assign dout=q1;

always @(posedge CLK or negedge rst)
begin
    if(!rst)
    begin
        q1<=0;
        end
    else if(en)begin
        if(!load)
            q1<=data;
        else if(q1<9)
            q1<=q1+1;
        else
            q1<=0;    
    end
end

always @(q1)
begin
    if(q1==4'h9)
        cout=1'b1;
    else
        cout=0;
end


endmodule

用modesim仿真时 先调节各个输入信号的值 一般来说先用复位让数据复位一下 然后再调节相应信号让数据进行变化比较

对应的testbech编写

`timescale 1 ns/ 1 ps
module jishuqi10_TB();

reg CLK;
reg en;
reg load;
reg rst;
reg [3:0]data;
wire [3:0]dout;
wire cout;

jishuqi10 ujishuqi10(
    .CLK  (CLK),
    .en   (en),
    .rst  (rst),
    .data (data),
    .dout (dout),
    .load (load),
    .cout (cout)

);

initial 
begin
CLK<=1'b0;
en<=1'b0;
load<=1;
rst<=0;
#20 rst<=1;
#20 en<=1;
    data<=4'b0011;
#200 load<=0;
#20 load<=1;

end


always @(*)
begin
    
 #10 CLK<=~CLK;


end




endmodule



在写完tb后 打开settings--simulation--compile test bench--test benches--new--填写testbench名字--勾选use test bench to perform--end simulation at 设置仿真结束时间--添加testbench文件--ok

FPGA掉电保护程序(上电直接执行所指程序)

1file--convert programing files-- programing files type变成jic文件--configuration device 改成自己板子的掉电保护(v2是epcs16)--add device 改成自己板子的型号--add file添加自己的sof--点击ok

2在下载程序时候--删除原有程序 delete--add file添加刚才的jic--把program/configure 打勾 --然后下载即可

猜你喜欢

转载自blog.csdn.net/weixin_63163242/article/details/128747209
今日推荐