久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

基礎項目(3)三態(tài)門程序設計講解

 印度阿三17 2019-09-14

寫在前面的話

我們所接觸到的IO都是單純的輸入(input)或者輸出(output)類型,而我們的一些總線協(xié)議如IIC等,,要求信號為三態(tài)類型,,也就是我們所說的輸入輸出(inout)類型。那么,,本節(jié)夢翼師兄將和大家一起來探討三態(tài)門的用法,。

項目需求

設計一個三態(tài)門電路,可以實現(xiàn)數(shù)據(jù)的輸出和總線“掛起”,。

系統(tǒng)架構

模塊功能介紹

模塊名

功能描述

three_state

控制三態(tài)總線Sda是否處于掛起狀態(tài)

頂層模塊端口描述

端口名

端口說明

Clk

系統(tǒng)時鐘

Rst_n

系統(tǒng)低電平復位

Data_buf

外部待傳輸數(shù)據(jù)輸入

Sda

三態(tài)數(shù)據(jù)總線

代碼解釋

三態(tài)門模塊代碼

/**************************************************** ?????????

?* ??Engineer ?????: ??夢翼師兄

?* ??QQ ????????????: ??761664056

?* ??The module function:三態(tài)門模塊

*****************************************************/

00??module?three_state(?

01??????????????????????????//系統(tǒng)輸入

02??????????????????????????clk,//系統(tǒng)50M輸入

03??????????????????????????rst_n,//低電平復位信號

04??????????????????????????data_buf,

05??????????????????????????//系統(tǒng)輸出

06??????????????????????????sda//三態(tài)總線

07?????????????????????);

08??//-------------------系統(tǒng)輸入-------------------

09??input?clk;//系統(tǒng)50M輸入

10??input?rst_n;//低電平復位信號

11??input?data_buf;//待傳輸數(shù)據(jù)

12??//-------------------系統(tǒng)輸出-------------------

13??inout?sda;//三態(tài)總線

14??//------------------寄存器定義------------------

15??reg?flag;//三態(tài)門開關定義

16??reg?[10:0]counter;//計數(shù)器定義

17??//------------------三態(tài)門賦值------------------

18??assign?sda=(flag==1)?data_buf:1'bz;

19??//----------------開關控制計數(shù)器----------------

20??always@(posedge?clk or?negedge?rst_n)

21??????begin

22??????????if(!rst_n)

23??????????????begin

24??????????????????counter<=0;//計數(shù)器復位

25??????????????end?

26??????????else?

27??????????????begin

28??????????????????if(counter<25)//計數(shù)器范圍

29??????????????????????counter<=counter 1;//計數(shù)器累加

30??????????????????else?

31??????????????????????counter<=0;//計數(shù)器清零

32??????????????end?

33??????end

34??//----------------開關/數(shù)據(jù)控制-----------------

35??always@(posedge?clk or?negedge?rst_n)

36??????begin

37??????????if(!rst_n)

38??????????????begin

39??????????????????flag<=0;//開關關閉

40??????????????end

41??????????else

42??????????????begin

43??????????????????if(counter==25)

44??????????????????????flag<=~flag;//開關信號翻轉

45??????????????end

46??????end?

47??endmodule

第18行代碼就是三態(tài)門的賦值方式,,三態(tài)門什么時候作為輸出、什么時候作為輸入是由開關信號flag控制的。當開關信號flag==1,,Sda的值等于待發(fā)送的數(shù)據(jù)data_buf(此時,,Sda相當于是output類型),當開關信號flag==0,,Sda的值變成高阻態(tài)(此時,,Sda相當于是input類型)。

第20~33行代碼為我們設計的一個定時器,,用來控制開關信號的翻轉,。

第43~44行代碼表示當定時器到達預定值,開關電平開始翻轉,。

三態(tài)門模塊測試代碼

/**************************************************** ?????????

?* ??Engineer ?????: ??夢翼師兄

?* ??QQ ????????????: ??761664056

?* ??The module function:三態(tài)門測試模塊

*****************************************************/

00??`timescale?1ns/1ns?

01??module?tb;

02??//-------------------系統(tǒng)輸入-------------------

03??reg?clk;//系統(tǒng)50M輸入

04??reg?rst_n;//低電平復位信號

05??reg?data_buf;//待傳輸數(shù)據(jù)

06??//-------------------系統(tǒng)輸出-------------------

07??wire?sda;//三態(tài)總線

08??//-------------------測試激勵-------------------

09??initial

10??????begin

11??????????clk=0;//時鐘賦初值

12??????????rst_n=0;//系統(tǒng)上電復位

13??????????data_buf=0;//data_buf賦初值

14??????????#1000?rst_n=1;//復位結束

15??????????#1000?data_buf=1;

16??????????#1000?data_buf=0;

17??????????#1000?data_buf=1;

18??????????#1000?data_buf=0;

19??????end?

20??????

21??always?#10?clk=~clk;//產(chǎn)生50MHZ時鐘

22??//-------------------模塊實例化-------------------

23??three_state three_state(?

24??????????//系統(tǒng)輸入

25??????????.clk(clk),//系統(tǒng)50M輸入

26??????????.rst_n(rst_n),//低電平復位信號

27??????????.data_buf(data_buf),

28??????????//系統(tǒng)輸出

29??????????.sda(sda)//三態(tài)總線

30???????);

31??endmodule

14~18行代碼,,模擬的是待傳輸數(shù)據(jù)的變化

仿真分析

由仿真波形可以看出,當開關關閉(flag==0),,Sda總線放開,,處于高阻狀態(tài),,此時外部數(shù)據(jù)可以輸入,,相當于我們模塊的輸入。

當開關打開(flag==1),,Sda等于data_buf的值,,說明此時,Sda相當于我們模塊的輸出,。

?

來源:https://www./content-1-451051.html

    本站是提供個人知識管理的網(wǎng)絡存儲空間,,所有內容均由用戶發(fā)布,不代表本站觀點,。請注意甄別內容中的聯(lián)系方式,、誘導購買等信息,謹防詐騙,。如發(fā)現(xiàn)有害或侵權內容,,請點擊一鍵舉報。
    轉藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多