在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

            EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 一個(gè)簡(jiǎn)單串行總線方案的veilog語(yǔ)言實(shí)現(xiàn)

            一個(gè)簡(jiǎn)單串行總線方案的veilog語(yǔ)言實(shí)現(xiàn)

            作者: 時(shí)間:2016-12-15 來(lái)源:網(wǎng)絡(luò) 收藏
            1.線路狀態(tài):在平時(shí)不發(fā)送數(shù)據(jù)的時(shí)候,DI 為高電平。SCK為低電平。

            2.起始位:SCK 為高的時(shí)候,DI 的下降沿決定了一次數(shù)據(jù)傳送的開(kāi)始。也就是說(shuō),在發(fā)送數(shù)據(jù)的時(shí)候,SCK為高電平的期間,DI 不允許變化。

            本文引用地址:http://www.biyoush.com/article/201612/330297.htm

            3.起始位有效后,SCK的上升沿輸出數(shù)據(jù)。

            4.時(shí)序圖


            5.所有數(shù)據(jù)低位在前

            數(shù)據(jù)為單向發(fā)送,目的是產(chǎn)生寬度可頻率可以調(diào)節(jié)的信號(hào)。同時(shí)產(chǎn)生一路Pwm信號(hào),本設(shè)計(jì)只是發(fā)送數(shù)據(jù)部分

            代碼:

            module SetData(Rst,SCK,DI,Width,Cycle,PWM);
            input SCK,DI,Rst;
            output reg [7:0]Width;//脈沖寬度
            output reg [23:0]Cycle;//周期
            output reg [7:0] PWM;//Pwm數(shù)據(jù)
            reg [7:0]Buff;
            reg [7:0] Buff1;
            reg [2:0]Stage;//狀態(tài)變量
            reg [5:0]Cnt;
            reg Load;
            reg INIT;//起始位標(biāo)記
            parameterStatus0= 3b000;//狀態(tài)定義
            parameterStatus1= 3b001;
            parameterStatus2= 3b010;
            parameterStatus3= 3b011;
            parameterStatus4= 3b100;
            parameterStatus5= 3b101;
            parameterStatus6= 3b110;
            parameterStatus7= 3b111;
            always @(negedge Rst,negedge SCK)//產(chǎn)生串并轉(zhuǎn)換完成信號(hào)(8bit)
            begin
            if(!Rst) Load<=0;
            else if ((!SCK)&&(Cnt==8))
            Load<=1;
            else Load<=0;
            end
            always @(negedge DI)//檢測(cè)起始位
            begin
            if(SCK==1)INIT<=0;//標(biāo)記到init 中
            else INIT<=1;
            end
            always @(negedge Rst,posedge SCK,negedge INIT)//狀態(tài)轉(zhuǎn)換
            begin
            if ((Rst==0) || (INIT==0))//強(qiáng)制到狀態(tài)0
            begin
            Stage<=Status0;
            Buff<=0;
            end
            else if ((SCK==1)&&(Stage==Status0)) begin Stage<=Status1;Cnt<=0; end
            else if ((SCK==1)&&(Stage!=Status0))
            begin
            Buff<={DI,Buff[7:1]};
            Cnt <= Cnt+1;
            if (Cnt==8)
            begin
            Cnt<=1;
            Stage<=Stage+1;
            if (Stage==Status7) Stage<=Status0;

            end

            end
            end
            always @(posedge Load,negedge INIT)//組合出需要的數(shù)據(jù)
            begin
            if (INIT==0)//如果是起始位,所有數(shù)據(jù)清零
            begin Width <=0;Cycle<=0; PWM<=0; end
            else
            //begin
            case(Stage)//不同狀態(tài)下的數(shù)據(jù)輸出
            //Status0:
            Status1: Width<=Buff;//脈寬數(shù)據(jù)
            Status2: Cycle<={ Cycle[23:8],Buff};//周期數(shù)據(jù)
            Status3: Cycle<={ Cycle[23:16],Buff,Cycle[7:0]};
            Status4: Cycle<={ Buff,Cycle[15:8],Cycle[7:0]};
            Status5: PWM<=Buff;//PWM數(shù)據(jù)
            endcase
            // end
            end
            endmodule

            仿真結(jié)果



            注意圖中認(rèn)為中斷了數(shù)據(jù)發(fā)送(通過(guò)設(shè)置起始位來(lái)實(shí)現(xiàn))。

            初學(xué)verilog語(yǔ)言,用的可能不夠規(guī)范,主要是不習(xí)慣不能在不同進(jìn)程里對(duì)同一個(gè)變量賦值的約束,只好加一個(gè)init變量進(jìn)行信號(hào)傳遞。



            關(guān)鍵詞: 串行總線veilog語(yǔ)

            評(píng)論


            技術(shù)專區(qū)

            關(guān)閉