net8 if-else case 作业

 

 

 

有负的值就离谱 为啥啊。。。

原来是 8的时候为1000 首位为1所以显示成负数了 好家伙。。。

那没事了

复制代码
module net8(
    input    wire    clk,
    input    wire     rst,
    output    reg        [3:0]po_cnt);

always @(posedge clk or posedge rst) begin
    if (rst) begin
        // reset
        po_cnt<=0;
    end
    else 
        begin
        if (po_cnt==15)           这个if  else删掉的话仿真结果一样  因为设置的最大值4位为  15  大于这个的为10000  但是显示不出来 只能显示0000  所以注意这个错误 要严谨。
        po_cnt<=0;
        
        else 
            po_cnt<=po_cnt+1'b1;
        end    
    
end

endmodule
复制代码
复制代码
`timescale    1ns/1ns
module    tb_net8();
reg    clk;
reg    rst;
wire    [3:0]po_cnt;

initial
begin
    clk=0;
    rst=1;
    #10    rst=0;
end

always #5    clk=~clk;

net8 tb_net8_inst(
    .clk(clk),
    .rst(rst),
    .po_cnt(po_cnt));

endmodule
复制代码

 

posted @   涛大林  阅读(72)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· .NET10 - 预览版1新功能体验(一)
点击右上角即可分享
微信分享提示