新聞中心

        EEPW首頁 > 模擬技術 > 設計應用 > 實驗11:RS觸發器

        實驗11:RS觸發器

        作者: 時間:2023-10-10 來源:電子森林 收藏

        本實驗的任務是描述一個電路,并通過STEP 開發板的12MHz晶振作為觸發器時鐘信號clk,撥碼開關的狀態作為觸發器輸入信號S,R,觸發器的輸出信號Q和非Q,用來分別驅動開發板上的LED,在clk上升沿的驅動下,當撥碼開關狀態變化時LED狀態發生相應變化。

        本文引用地址:http://www.104case.com/article/202310/451322.htm

        基本RS觸發器可以由兩個與非門按正反饋方式閉合構成。通常將Q端的狀態定義為鎖存器的狀態,即Q=1時,稱為鎖存器處于1的狀態;Q=0時,稱鎖存器處于0的狀態,電路具有兩個穩態。電路要改變狀態必須加入觸發信號,因是與非門構成的基本RS觸發器,所以,觸發信號是低電平有效。非Rd和非Sd是一次信號,只能一個個加,即它們不能同時為低電平,因為會有邏輯矛盾(Q == 非Q)。


        用數據流描述實現的RS觸發器
        程序清單rsff.v
        <code verilog> module rs
        ff

         ( 
          input wire clk,r,s,			//rs觸發器輸入信號		
          output reg q,				//輸出端口q,在always塊里賦值,定義為reg型
          output wire qb				//輸出端口非q
         );
         assign qb = ~q;
         always@(posedge clk)
        begin
        	case({r,s})
        		2'b00:  q <= q;      //r,s同時為低電平,觸發器保持狀態不變
        		2'b01:  q <= 1'b1;	   //觸發器置1狀態
        		2'b10:  q <= 1'b0;   //觸發器置0狀態
        		2'b11:  q <= 1'bx;   //r,s同時為高電平有效,邏輯矛盾,觸發器為不定態
        	endcase
        end
        endmodule
        </code>

        仿真文件rsfftb.v

          `timescale 1ns/100ps    //仿真時間單位/時間精度
           module rs_ff_tb();       
            reg    clk,r,s;         	//需要產生的激勵信號定義
            wire   q,qb;      	  //需要觀察的輸出信號定義
            //初始化過程塊
            initial
            begin
        	  clk = 0;
        	  r = 0;
        	  s = 0;
        	  #50
        	  r = 0;
        	       s = 1;
        	  #50
        	  r = 1;
                  s = 0;
        	  #50
        	  r = 1;
        	       s = 1;
        	  #50
        	  r = 0;
        	       s = 1;
            end
           always #10 clk = ~clk;      //產生輸入clk,頻率50MHz
           //module調用例化格式
           rs_ff  u1 (      //rs_ff表示所要例化的module名稱,u1是我們定義的例化名稱
        		.clk(clk),     //輸入輸出信號連接。
        		.r(r),
        		.s(s),
        		.q(q),    //輸出信號連接
        		.qb(qb)   
                     );
          endmodule
        1. 打開,建立工程。
        2. 新建設計文件,并鍵入設計代碼。
        3. 綜合并分配管腳,將輸入信號clk,r,s分配至撥碼開關,將輸出信號q,qb分配至板卡上的LED。clk/C1,r/M7,s/M8,q/N13,qb/M12
        4. 根據仿真教程,實現對本工程的仿真,驗證仿真結果是否與預期相符。
        5. 如果仿真無誤,構建并輸出編程文件,燒寫至的Flash之中。
        6. 觀察輸出結果。
        1. 仿真結果如下圖所示:
        2. 實驗現象:撥動撥碼開關撥至01,led1亮,led2滅。撥動撥碼開關撥至10,led1滅,led2亮。撥動撥碼開關撥至00,保持上一個狀態。


        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 中卫市| 屏东县| 九龙坡区| 永寿县| 永宁县| 寿光市| 朝阳县| 油尖旺区| 濉溪县| 平罗县| 新沂市| 龙门县| 高清| 德令哈市| 抚宁县| 安国市| 鞍山市| 交口县| 凤城市| 突泉县| 青龙| 修文县| 云阳县| 上杭县| 绥滨县| 巴里| 武宁县| 临朐县| 隆尧县| 平舆县| 和顺县| 广河县| 安岳县| 贵溪市| 凭祥市| 横山县| 巍山| 方山县| 岱山县| 六安市| 清新县|