OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 5068|回复: 1

[ALTERA] 上电复位问题,正点原子开拓者开发板

[复制链接]

5

主题

7

帖子

0

精华

新手上路

积分
39
金钱
39
注册时间
2019-12-20
在线时间
8 小时
发表于 2020-6-4 22:39:25 | 显示全部楼层 |阅读模式
部分代码如下(数码管静态显示):
module seg_led_static(
        input                 clk,
        input                  rst_n,
        input                   add_flag,
        output reg [5:0]sel_led,
        output reg [7:0]seg_led
);
reg [3:0]state_number;

always@(posedge clk or negedge rst_n)begin
        if(!rst_n)
                sel_led<=6'b111111;
        else
                sel_led<=6'b000000;
end


always@(posedge clk or negedge rst_n)begin
        if(!rst_n)
                state_number<=10;
        else if(add_flag)begin
               
                        if(state_number<16)
                                state_number<=state_number+1'b1;
                        else
                                state_number<=1'b0;
        end
end


always@(posedge clk or negedge rst_n)begin
        if(!rst_n)
                seg_led<=8'b11111111;
        else begin
                case(state_number)
                4'd0:seg_led<=8'b11000000;
                4'd1:seg_led<=8'b11111001;
                4'd2:seg_led<=8'b10100100;
                4'd3:seg_led<=8'b10110000;
                4'd4:seg_led<=8'b10011001;
                4'd5:seg_led<=8'b10010010;
                4'd6:seg_led<=8'b10000010;
                4'd7:seg_led<=8'b11111000;
                4'd8:seg_led<=8'b10000000;
                4'd9:seg_led<=8'b10010000;
                4'd10:seg_led<=8'b10001000;
                4'd11:seg_led<=8'b10000011;
                4'd12:seg_led<=8'b11000110;
                4'd13:seg_led<=8'b10100001;
                4'd14:seg_led<=8'b10000110;
                4'd15:seg_led<=8'b10001110;
                default:seg_led<=8'b011111111;
                endcase
        end
end

endmodule


上电时就从10状态开始显示,即使不按复位键也是从10状态开始显示,难道刚上电时不应该从0状态开始显示吗(reg上电默认为0),请各位高手帮忙解答,非常感谢。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

3

主题

2016

帖子

0

精华

资深版主

Rank: 8Rank: 8

积分
5623
金钱
5623
注册时间
2018-10-21
在线时间
1593 小时
发表于 2020-6-7 13:59:31 | 显示全部楼层
你程序里复位的时候是从10开始,所以不按复位,也是从10状态显示,Quartus软件将state_number的值默认设置成10了。
如果你想上电从0开始,按下复位键再变为10,那么你在定义state_number的时候给个初始值,即reg [3:0]state_number=0就可以了。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-27 08:32

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表