freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于vhdl的數(shù)字跑表技術(shù)(編輯修改稿)

2024-12-13 21:37 本頁(yè)面
 

【文章內(nèi)容簡(jiǎn)介】 時(shí)序仿真驗(yàn)證 設(shè)計(jì)輸入 器件編程 在線測(cè)試 投產(chǎn) 設(shè)計(jì)修改 圖 MAX+plusⅡ 軟件工作流程 17 VHDL 程序的結(jié)構(gòu) 一、 VHDL 程序的基本單元 VHDL 程序的結(jié)構(gòu)由結(jié)構(gòu)體、實(shí)體、配置( CONFIGURATION)、程序包( PACKAGES)和庫(kù)( LIBRARIES)組成。在一個(gè)具體的應(yīng)用程序中,最基本的部分為實(shí)體和結(jié)構(gòu)體。 在應(yīng)用程序中,實(shí)體是唯一的,結(jié)構(gòu)體可以具有多個(gè)。在具有多個(gè)結(jié)構(gòu)體的情況下,具體使用哪一個(gè)結(jié)構(gòu)體需要指定。配置可以用于描述實(shí)體與結(jié)構(gòu)體的連接關(guān)系,設(shè)計(jì)者可以利用配置為實(shí)體選擇不同的結(jié)構(gòu)體。 二、 VHDL 程序的結(jié)構(gòu)體 VHDL 語(yǔ)言結(jié)構(gòu)體的完整 格式如下: ARCHITECTURE 結(jié)構(gòu)體 OF 實(shí)體名 IS [定義語(yǔ)句 ] BEGIN [并行語(yǔ)句 1; ] [并行語(yǔ)句 2; ] [……] END [ARCHITECTURE] [ 結(jié)構(gòu)體名 ]; 三、 VHDL 程序的實(shí)體 VHDL 中實(shí)體的完整格式如下: ENTITY 實(shí)體名 IS [ GENERIC (類屬表 )。 ] [ PORT (端口表 )。 ] [ BEGIN 實(shí)體語(yǔ)句部分 。] END [ ENTITY ] 實(shí)體名 。 實(shí)體可 以用來給所設(shè)計(jì)的系統(tǒng)或者電路命名,該所設(shè)計(jì)的系統(tǒng)或者電路定義一個(gè)與其他模塊進(jìn)行通信的接口。它描述了一個(gè)系統(tǒng)或者電路的外觀圖。 實(shí)體中的類屬( GENERIC)和端口說明( PORT)用來說明所設(shè)計(jì)的系統(tǒng)或者電路與其它模塊通信的對(duì)象。類屬說明提供靜態(tài)信息通道,適用于規(guī)定端口的大小、實(shí)體中包括元件的多少以及時(shí)間特性等。端口說明是對(duì)外引腳的描述,它包括引腳的名稱、信號(hào)的傳輸方向和傳輸?shù)臄?shù)據(jù)類型。實(shí)體語(yǔ)句部分定義實(shí)體接口中的公共信息。 18 第三章 跑表 的設(shè)計(jì) 跑表 的功能描述 這里將要討論的 跑表 經(jīng)常應(yīng)用在體育競(jìng)賽中 和一些要求準(zhǔn)確計(jì)時(shí)的領(lǐng)域。它的主要功能描述如下: (1) 要求設(shè)置復(fù)位開關(guān)。當(dāng)按下復(fù)位開關(guān)時(shí), 跑表 清零并做好計(jì)時(shí)準(zhǔn)備。在任何情況下只要按下復(fù)位開關(guān), 跑表 都要無(wú)條件地進(jìn)行復(fù)位操作,即使是在計(jì)時(shí)過程中也要無(wú)條件地進(jìn)行清零操作。 (2) 要求設(shè)置啟 /停開關(guān)。實(shí)際上啟 /停開關(guān)的使用方法與傳統(tǒng)的機(jī)械式計(jì)時(shí)器完全相同:當(dāng)按下啟 /停開關(guān)后,將啟動(dòng) 跑表 并開始計(jì)時(shí);當(dāng)再按一下啟 /停開關(guān)時(shí),將終止 跑表 的計(jì)時(shí)操作。 (3) 要求計(jì)時(shí)精度大于 秒。在體育競(jìng)賽中運(yùn)動(dòng)員的成績(jī)計(jì)時(shí)是以 秒為最小單位的,因此要求設(shè)計(jì)的計(jì)時(shí)器能 夠顯示 秒的時(shí)間。 (4) 要求 跑表 的最長(zhǎng)計(jì)時(shí)時(shí)間為 24 小時(shí)。在現(xiàn)今的各項(xiàng)體育競(jìng)賽中,最長(zhǎng)時(shí)間為12 小時(shí)的 跑表 已經(jīng)足夠了。 (5) 要求有系統(tǒng)電源復(fù)位電路的電源復(fù)位信號(hào)。 根據(jù)上面 跑表 的功能描述,不難給出該 跑表 的輸入和輸出電路。首先來描述一下 跑表 的輸入電路: (1) 首先要按下復(fù)位開關(guān) reset 進(jìn)行 跑表 的服務(wù)清零操作,使 跑表 做好計(jì)時(shí)準(zhǔn)備。 (2) 當(dāng)做好計(jì)時(shí)準(zhǔn)備后按下 跑表 的啟 /停開關(guān) on_off, 跑表 開始計(jì)時(shí), 跑表 的最小計(jì)時(shí)單位是 秒;計(jì)時(shí)完畢后再按一下 跑表 的啟 /停開關(guān) on_off,將終止 跑表 的 計(jì)時(shí)操作。 (3) 由于 跑表 的計(jì)時(shí)精度為 秒,所以提供給 跑表 內(nèi)部定時(shí)的時(shí)鐘信號(hào)頻率應(yīng)該大于 100Hz。這里取 1000Hz 的時(shí)鐘輸入信號(hào) clk。 (4) 當(dāng)對(duì) 跑表 進(jìn)行更換電源操作時(shí),由系統(tǒng)電源復(fù)位電路提供給該系統(tǒng)一個(gè)電源復(fù)位信號(hào) sysreset。對(duì)于該 跑表 的設(shè)計(jì)中,系統(tǒng)電源的復(fù)位電路是外加的,并不包含在設(shè)計(jì)當(dāng)中。 接下來來描述 跑表 的輸出電路: 19 (1) 由于 跑表 的最長(zhǎng)計(jì)時(shí)時(shí)間為 24 小時(shí),因此需要一個(gè) 8 位的顯示器。這樣,在設(shè)計(jì)中就需要一個(gè)八條輸出線,用來選通指定的一位 LED 七段顯示數(shù)碼管。 (2) 顯示器的 每一位都采用 LED 七段顯示數(shù)碼管進(jìn)行顯示,因此輸出電路要有一個(gè)七條輸出線連接在 LED 七段顯示數(shù)碼管。 綜上所述,可以確定 跑表 的基本方案如下: (1) 當(dāng)對(duì) 跑表 進(jìn)行更換電源操作時(shí),由系統(tǒng)電源復(fù)位電路提供給 跑表 的電源復(fù)位信號(hào) sysreset 來控制對(duì) 跑表 的復(fù)位操作,即使 跑表 清零。 (2) 計(jì)時(shí)操作過程如下: ? 首先按下復(fù)位開關(guān) reset 進(jìn)行 跑表 的復(fù)位清零操作,使 跑表 做好計(jì)時(shí)準(zhǔn)備。 ? 按下 跑表 的啟 /停開關(guān) on_off, 跑表 計(jì)時(shí)開始。這 時(shí) ,通過輸出線 choose( 7 downto 0)來選擇指定的一位 LED 七段顯示數(shù)碼管 。其中, choose( 7 downto 0)以 100Hz 的頻率使 8 個(gè) LED 七段顯示數(shù)碼管按次序依次點(diǎn)亮,由于頻率很高,所以可以得到一個(gè)無(wú)閃爍的穩(wěn)定的 跑表 計(jì)時(shí)輸出。 ? 計(jì)時(shí)完畢后,按下 跑表 的啟 /停開關(guān) on_off,將終止 跑表 的計(jì)時(shí)操作。 ? 然后再次按下復(fù)位開關(guān) reset 進(jìn)行 跑表 的復(fù)位清零操作,為 跑表 的下次計(jì)時(shí)做準(zhǔn)備。 (3) 跑表 進(jìn)行計(jì)時(shí)操作的計(jì)時(shí)時(shí)鐘是由外部時(shí)鐘信號(hào) clk 提供的。 根據(jù)上述考慮,可以畫出 跑表 系統(tǒng)的結(jié)構(gòu)框圖, 如圖 31 所示 , 它說明了整個(gè)系統(tǒng)的外部輸入和輸出情況。 圖 跑表 系統(tǒng)的結(jié)構(gòu)框圖 20 頂層設(shè)計(jì)的 VHDL 源代碼 頂層實(shí)體設(shè)計(jì)及 VHDL 源代碼 在任何自頂向下的 VHDL 設(shè)計(jì)描述中,首先要做的第一步就是描述頂層信號(hào)的接口,正如圖 31 所示。系統(tǒng)的接口包括輸入信號(hào)、輸出信號(hào)、一些 輸入輸出雙向信號(hào)以及需要傳輸?shù)哪承﹨?shù)。需要描述的不僅是信號(hào)的方 向,還包括信號(hào)的類型。 在上面的描述中,實(shí)際上已經(jīng)規(guī)定了 跑表 的輸入輸出信號(hào): (1) 輸入信號(hào) ? 復(fù)位開關(guān)信號(hào) reset; ? 啟/停開關(guān)信號(hào) on_off; ? 系統(tǒng)電源復(fù)位信號(hào) sysreset; ? 外部時(shí)鐘信號(hào) clk。 (2) 輸出信號(hào) ? LED 七段顯示數(shù)碼管的選通信號(hào) choose( 7 downto 0); ? LED 七段顯示數(shù)碼管的輸出信號(hào) segment( 6 downto 0)。 我們知道, VHDL 的系統(tǒng)接口是由實(shí)體說明來描述的。下面是用 圖 31 所示的 結(jié)構(gòu)框圖生成的 跑表 頂層實(shí)體說明的 VHDL 源代碼。 源代碼 1 library ieee。 use 。 use 。 use 。 entity stopwatch is port ( reset1 : in std_logic。 on_off : in std_logic。 sysreset : in std_logic。 clk : in std_logic。 choose : out std_logic_vector(7 downto 0)。 segment : out std_logic_vector(6 downto 0))。 end stopwatch。 21 頂層結(jié)構(gòu)體的設(shè)計(jì)及 VHDL 源代碼 在任何自頂向下的 VHDL 設(shè)計(jì)描述中,設(shè)計(jì)人員常常將整個(gè)設(shè)計(jì)的系統(tǒng)劃分為幾個(gè)模塊,然后采用結(jié)構(gòu)描述方式對(duì)整個(gè)系統(tǒng)進(jìn)行描述?,F(xiàn)在我們就來根據(jù)前面描述的結(jié)構(gòu)功能,確定使用哪些模塊以及這些模塊之間的關(guān)系。 由于 跑表 的復(fù)位開關(guān)和啟 /停開關(guān)采用按鍵的輸入方式,其產(chǎn)生時(shí)刻和持續(xù)時(shí)間的長(zhǎng)短是隨機(jī)不定的,且存在因開關(guān)簧片反彈引起的電平抖動(dòng)現(xiàn)象,因此必須在每個(gè)開關(guān)后面安排一個(gè)消抖和同步化電路模塊,以保證系統(tǒng)能捕捉到輸入脈沖,并保證每按一鍵,只形成一個(gè)寬度為系統(tǒng)時(shí)鐘周期的脈沖。同步電路的方案很多 ,圖 32 是一種 既有消抖功能又有同步功能的電路,應(yīng)用的非常廣泛。 圖 一種常用的消抖同步電路 由于外部時(shí)鐘信號(hào) clk 的頻率為 1000Hz,而實(shí)際需要的內(nèi)部計(jì)時(shí)時(shí)鐘頻率為 100Hz和提供給消抖同步電路的頻率為 25Hz,因此需要一個(gè)時(shí)鐘分頻電路。通過分頻電路,由外部時(shí)鐘信號(hào) clk 產(chǎn)生頻率分別為 100Hz 和 25Hz 的時(shí)鐘信號(hào)。 跑表 的計(jì)時(shí)操作是在復(fù)位開關(guān)信號(hào)無(wú)效并且兩次啟 /停開關(guān)信號(hào)有效之間才能夠進(jìn)行,因此需要一個(gè)電路來產(chǎn)生一個(gè)使能信號(hào)。只有當(dāng)使能信號(hào)有效時(shí),才能夠進(jìn)行 跑表的定時(shí)計(jì)數(shù)操作。 當(dāng) 跑表 開始 正常計(jì)時(shí)的時(shí)候,需要進(jìn)行定時(shí)計(jì)數(shù)操作,由于時(shí)間顯示器是由 8 個(gè)LED 七段顯示數(shù)碼管組成的,因此需要產(chǎn)生 8 位的計(jì)時(shí)信息:小時(shí)十位信號(hào)、小時(shí)個(gè)位信號(hào)、分十位信號(hào)、分個(gè)位信號(hào)、秒十位信號(hào)、秒個(gè)位信號(hào)、 秒位信號(hào)和 秒位 22 信號(hào)。這個(gè)定時(shí)計(jì)數(shù)操作可以有一個(gè)定時(shí)計(jì)數(shù)器來完成,定時(shí)計(jì)數(shù)器的功能就是用來產(chǎn)生 8 位計(jì)時(shí)信息。 跑表 還要將定時(shí)計(jì)數(shù)的結(jié)果顯示出來,為了節(jié)省資源,我們采用循環(huán)點(diǎn)亮 LED 七段顯示數(shù)碼管的方法來顯示 跑表 的計(jì)時(shí)輸出。我們通過信號(hào) choose( 7 downtown 0)來進(jìn)行 8 個(gè) LED 七段顯示數(shù)碼管的選 擇,從而將輸出信號(hào) segment( 6 downtown 0)送到相應(yīng)的 LED 七段顯示數(shù)碼管上以完成 跑表 計(jì)時(shí)的顯示。 跑表 顯示的功能可以通過一個(gè)單獨(dú)的電路來實(shí)現(xiàn)。 通過上面的說明,不難看出我們可以將 跑表 系統(tǒng)劃分為 5 個(gè)模塊:鍵輸入模塊、時(shí)鐘分頻模塊、控制模塊、 跑表 計(jì)時(shí)模塊、和顯示 模塊。這 5 個(gè)模塊的連接關(guān)系 如圖 33所示。 圖 跑表 各個(gè)模塊之間的連接關(guān)系 下面我們就根據(jù)圖 33 所示的各個(gè)模塊的連接關(guān)系來確定各個(gè)模塊的輸入信號(hào)和輸出信號(hào)。 (1) 鍵輸入模塊 輸入信號(hào) ? 復(fù)位開關(guān)信號(hào) reset; ? 啟 /停開關(guān) 信號(hào) on_off; ? 外部時(shí)鐘信號(hào) clk; ? 來消除抖動(dòng)的時(shí)鐘信號(hào) clk1,由時(shí)鐘分頻模塊提供。 23 輸出信號(hào) ? 去除抖動(dòng)后的復(fù)位信號(hào) reset0; ? 去除抖動(dòng)后的啟 /停信號(hào) on_off0。 (2) 時(shí)鐘分頻模塊 輸入信號(hào) ? 系統(tǒng)電源復(fù)位信號(hào) sysreset; ? 外部時(shí)鐘信號(hào) clk。 輸出信號(hào) ? 用來消除抖動(dòng)的時(shí)鐘信號(hào) clk1; ? 跑表 的內(nèi)部計(jì)時(shí)時(shí)鐘信號(hào) clk0。 (3) 控制模塊 輸入信號(hào) ? 去除抖動(dòng)后的復(fù)位信號(hào) reset0; ? 去除抖動(dòng)后的啟 /停信號(hào) on_off0; ? 系統(tǒng)電源復(fù)位信號(hào) sysreset; ? 跑表 的內(nèi)部計(jì)時(shí)時(shí)鐘信 號(hào) clk0。 輸出信號(hào) ? 跑表 定時(shí)計(jì)數(shù)的使能信號(hào) enable。 (4) 跑表 計(jì)時(shí)模塊 輸入信號(hào) ? 去除抖動(dòng)后的復(fù)位信號(hào) reset0; ? 系統(tǒng)電源復(fù)位信號(hào) sysreset; ? 跑表 的內(nèi)部計(jì)時(shí)時(shí)鐘信號(hào) clk0; ? 跑表 定時(shí)計(jì)數(shù)的使能信號(hào) enable。 輸出信號(hào) ? 小時(shí)十位信號(hào) hr10; ? 小時(shí)個(gè)位信號(hào) hr; ? 分十位信號(hào) min10; ? 分個(gè)位信號(hào) min; ? 秒十位信號(hào) sec10; 24 ? 秒個(gè)位信號(hào) sec; ? 秒位信號(hào) sec01; ? 秒位信號(hào) sec001。 (5) 跑表 顯示模塊 輸入信號(hào) ? 系統(tǒng)電源復(fù)位信號(hào) sysreset; ? 外部 時(shí)鐘信號(hào) clk; ? 小時(shí)十位信號(hào) hr10; ? 小時(shí)個(gè)位信號(hào) hr; ? 分十位信號(hào) min10; ? 分個(gè)位信號(hào) min; ? 秒十位信號(hào) sec10; ? 秒個(gè)位信號(hào) sec; ? 秒位信號(hào) sec01; ? 秒位信號(hào) sec001。 輸出信號(hào) ? LED 七段顯示數(shù)碼管的選通信號(hào) choose; ? LED 七段顯示數(shù)碼管的輸出信號(hào) segment。 下面根據(jù) 圖 33 所示的各 個(gè)模塊的連接關(guān)系,給出頂層結(jié)構(gòu)體的 VHDL 源代碼。其中 5 個(gè)模塊以元件的形式給出,首先在結(jié)構(gòu)體的說明部分進(jìn)行元件說明,然后在結(jié)構(gòu)體中進(jìn)行例化調(diào)用。同時(shí)在結(jié)構(gòu)體的說明部分還定義了 許多中間信號(hào),主要用來在模塊之間傳遞信息。 源代碼 2 architecture structure of stopwatch is ponent keyin port ( reset : in std_logic。 on_off : in std_logic。 clk : in std_logic。 clk1 : in std_logic。 reset0 : out std_logic。 25 on_off0 : out std_logic)。 end ponent。 ponent clk_div port ( sysreset : in std_logic。 clk : in std_logic。 clk0 :out
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1