久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1365|回復: 1
打印 上一主題 下一主題
收起左側

Verilog HDL程序不知什么原因總是復位重啟?

[復制鏈接]
跳轉到指定樓層
樓主
ID:814885 發表于 2021-11-11 16:56 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
各位大神,我新學了幾天 Verilog HDL 語言,寫了個小小程序,使用高云芯片 GW1NS-4,運行后,不知什麼原因總是復位重啟,能否各位指點下,感激不盡,目的是對輸入的BCD碼解碼顯示,led_dp 是小數點,led_en是外部MCU鎖存信號, 我的思路是 用芯片的OSC 作為時鐘,然后上電后,檢測到 led_en 為高電平,才開始程序的運行,有22個LED的輸出,有兩個LED作小數點,程序中將這兩點熄滅,其他的拼成七段數碼顯示,運行后,一段時間正常工作后,會不正常閃爍,然后回到上電后的狀態,全亮


module  ledigital(
//    clk,
//    rst_n,
    led_dp,
    led_en,
    bcd_code,
    led
);
//=================================================================
// PORT DECLARATION
//=================================================================
//input clk;
//input rst_n;
input led_dp;
input led_en;
input[3:0] bcd_code;
output[21:0] led;
//------------------------------------------------------------------
//
reg[19:0] timecnt;
reg[19:0] temp_led;
assign {led[21:15],led[13:9],led[7:0]} = {temp_led[19:0]};
wire osc_clk;
wire led_8pin;
wire led_14pin;
assign led[8]=led_8pin;
assign led[14]=led_14pin;
assign led_8pin = 1;     // 熄滅小數點
assign led_14pin = 1;

reg[19:0] rst_count;
reg rst_en;
reg[3:0] temp_bcd;
reg temp_dp;
//reg temp_en;
reg[1:0] temp_work;
Gowin_OSC Gowin_OSC_inst (        // 用內部振蕩作CLK
    .oscout(osc_clk),
    .oscen(1'd1)
);

always @(posedge osc_clk) begin
   if(!rst_en)                                       
    begin
    rst_count <= rst_count + 1'd1;
    if(rst_count >= 20'b1111_1111_1111_1111_1110)          //上電延時一段時間后,檢測外部 led_en 是否拉高,拉高,則開始工作
      begin      
        rst_count <= 0;
        if(led_en)
          rst_en <= 1;
      end
   end
end

always @(posedge osc_clk ) begin
   if(!rst_en)
    begin
     temp_led <= 20'b0000_0000_0000_0000_0000;
    end
   else
    begin
       if(temp_work == 0)        //因為 led_en 是鎖存信號,  下降沿改變數據, 上升沿鎖存
        begin                           
        if(!led_en)                    //檢測下降沿
          temp_work <= 1;
        end
       else if(temp_work == 1)     //檢測上升沿
        begin
        if(led_en)
          begin
          temp_bcd <= #20 bcd_code;                                       //顯示解碼的BCD數據
         case (temp_bcd)
         5'd0: temp_led <=  20'b0101_1100_1100_0000_0000;
         5'd1: temp_led <=  20'b0001_1101_0101_1011_1111;   
         5'd2: temp_led <=  20'b1100_0001_0011_1100_0000;
         5'd3: temp_led <=  20'b0100_0001_1001_1110_0010;
         5'd4: temp_led <=  20'b0000_0100_0000_0011_1111;
         
         5'd5: temp_led <=  20'b0010_0010_1000_0110_0010;
         5'd6: temp_led <=  20'b0111_0110_1000_0100_0000;
         5'd7: temp_led <=  20'b0000_1101_0101_1011_0011;
         5'd8: temp_led <=  20'b0101_0101_1000_0100_0000;
         5'd9: temp_led <=  20'b0101_0101_1000_0110_0010;
         5'd10: temp_led <=  20'b0101_0000_0000_0001_0001;
         5'd11: temp_led <=  20'b0100_0000_1000_0000_0000;
         5'd12: temp_led <=  20'b1011_1110_0110_0100_0000;
         5'd13: temp_led <=  20'b0100_1000_1100_0000_0000;
         5'd14: temp_led <=  20'b1010_0010_0010_0100_0000;
         5'd15: temp_led <=  20'b1010_0010_1010_0101_0001;
         
         default:temp_led <= 20'b1111_1111_1111_1111_1111;
           endcase
         temp_work<= 0;
       end
     end
    end
end

endmodule

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:814885 發表于 2021-11-12 16:04 | 只看該作者
請各位大神不吝賜教
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 日韩欧美在线一区二区 | 国产精品资源在线观看 | 黄色在线免费观看视频网站 | 久久国产精品免费一区二区三区 | 97福利在线| 亚洲天堂中文字幕 | 在线超碰 | 亚洲色图网址 | 久久成人精品视频 | 久久不卡视频 | 在线观看国产 | 欧美亚洲国产成人 | 欧美日韩亚洲在线 | 国产区高清 | 亚洲精品乱码久久久久久久久 | 91大片 | 午夜视频在线免费观看 | 成人天堂噜噜噜 | 国产免费一区二区三区免费视频 | 你懂的国产 | 天天干狠狠操 | 色伊人网 | 欧美一区| 成人不卡视频 | 亚洲人成网站777色婷婷 | 欧洲精品久久久久毛片完整版 | 日本不卡一区二区三区 | 手机日韩 | 成人精品一区 | 日韩精品无码一区二区三区 | 人人干人人玩 | 亚洲 欧美 日韩在线 | 91在线视频网址 | 久久合久久| 国产免费高清 | 日韩精品一区二区三区视频播放 | 国产精品视频观看 | 国产乱码精品一区二区三区中文 | 日日摸天天添天天添破 | 欧美日韩高清一区 | 日本 欧美 三级 高清 视频 |