<var id="fnfpo"><source id="fnfpo"></source></var>
<rp id="fnfpo"></rp>

<em id="fnfpo"><object id="fnfpo"><input id="fnfpo"></input></object></em>
<em id="fnfpo"><acronym id="fnfpo"></acronym></em>
  • <th id="fnfpo"><track id="fnfpo"></track></th>
  • <progress id="fnfpo"><track id="fnfpo"></track></progress>
  • <tbody id="fnfpo"><pre id="fnfpo"></pre></tbody>

  • x
    x
    查看: 26511|回復: 1
    打印 上一主題 下一主題

    [提問] 關于FPGA的觸發問題,求解答

    [復制鏈接]
    跳轉到指定樓層
    樓主
    發表于 2016-9-7 10:10:18 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
    關鍵詞: FPGA , 觸發
    各位前輩,我有一個verilog代碼,是實現在觸發信號triggle_rising(檢測triggle的上升沿)有效的時候,FPGA控制adc工作然后采集完1000個數據的時候,把數據存儲在RAM中,然后通過RAM把數據傳到另一塊板子。但現在問題是下到板子上就“觸發信號triggle_rising”FGPA檢測不到,不知道問題出在那了,希望前輩幫我看看這個程序,看有什么地方需要改進的,指點一下,這是我寫的代碼,在FSM狀態機的部分:
    module fsm(
      output [1:0] rw,
      //output triggle_rising,
      input spi_cs,
      input full,
      input triggle,
      input clk
        );

    reg[1:0] state,next_state;
    parameter S0 = 2'b00,
              S1 = 2'b01,
    S2 = 2'b10,
    S3 = 2'b11;
    reg sync_cs1;
    reg sync_cs2;

    reg sync_triggle1;
    reg sync_triggle2;
    reg triggle_low;
    reg triggle_high;
    wire triggle_rising;
    //reg triggle_rising = 0;

    reg [1:0] rwR;
    assign triggle_rising = (triggle_low) && (!triggle_high);

    assign rw = rwR;
    always @(posedge clk)
    begin
      sync_cs1 <= spi_cs;
      sync_cs2 <= sync_cs1;
      sync_triggle1 <= triggle;
      sync_triggle2 <= sync_triggle1;
      triggle_low <= sync_triggle2;
      triggle_high <= triggle_low;
    // triggle_rising <= (triggle_low) && (!triggle_high);
    end

    always @(posedge clk)
    begin
        state <= next_state;
    end

    always @(state,full,sync_cs2,triggle_rising)
      begin
        rwR = 2'b00;
        next_state = S0;
        case(state)
           S0 : begin
              if(triggle_rising)
                 next_state = S1;
         end
       S1 : begin
              rwR = 2'b01;
        if(full)
           next_state = S2;
        else
           next_state = S1;
        end
       S2 : begin
              next_state = S2;
              if(sync_cs2)
           next_state = S3;
      end
       S3 : begin
              rwR = 2'b10;
        if(full)
          next_state = S0;
        else
          next_state = S3;
      end
        endcase
    end

    endmodule

    沙發
    發表于 2017-10-27 16:49:43 | 只看該作者
    你是否有以下情況:
    1. 一點小問題就卡住學習進程,浪費了寶貴的學習時間?!
    2. 花了大量時間自學,學了一大堆,卻不知道有沒有用?!
    3.能看懂別人的代碼,到自己設計時卻不知道先從哪里下手?!
    4.找不到工作,面試難?!看別人有10K+薪水,而自己只有幾K?!
    不要猶豫了,趕緊來報班培訓吧,自學沒個幾年根本達不到就業水平,時間就是金錢,早掌握早賺錢。
    明德揚專業FPGA培訓,帶你擺脫上面的四種情況,一對一輔導教學,您完全掌握了老師才開始下一個知識點的教學,不用擔心大班教學跟不上其他學員進度,明德揚承諾能真正讓你擁有獨立完成任意FPGA項目的能力。
    就業班:10800
    周末班:7999
    網絡班(線上真人教學):5999
    20000以下找對手,歡迎對比,了解更多請Q我821219077,竭誠為您服務。

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

    本版積分規則

    關于我們  -  服務條款  -  使用指南  -  站點地圖  -  友情鏈接  -  聯系我們
    電子工程網 © 版權所有   京ICP備16069177號 | 京公網安備11010502021702
    快速回復 返回頂部 返回列表
    精品一区二区三区自拍图片区_国产成人亚洲精品_亚洲Va欧美va国产综合888_久久亚洲国产精品五月天婷