計算機組成原理與體系結構-實驗二 ALU(Proteus 8.15)

目錄

一、實驗目的

二、實驗內容

三、實驗器件

四、實驗原理

五、實驗步驟

六、思考題


一、實驗目的

1、了解算術邏輯運算器(74LS181)的組成和功能。

2、掌握基本算術和邏輯運算的實現方法。

二、實驗內容

設計算數邏輯運算器系統的通路;運用算術邏輯運算器74LS181進行有符號數/無符號數的算術運算和邏輯運算。

三、實驗器件

1. 算術邏輯運算器(74LS181)。

2. 三態門(74LS244)及寄存器(74LS273、74LS373)。

3. RESPACK-8:排阻

4. DIPSWC_8:撥碼開關

5. 7SEG-BCD:顯示一位數字

6. 7SEG-BCD-GRN:顯示一位數字

7. 4078:8輸入端的或門

8. 74LS04 :反相器,非門

9. BUS:總線

10. SW-SPDT:單刀雙擲開關

11. LED-GREEN:用來表示ZF/CF/SF的值

12. LED-RED:用來表示ZF/CF/SF的值

13. LED-YELLOW:用來表示ZF/CF/SF的值。

四、實驗原理

說明:由于筆者能力有限,加上覺得實驗指導的描述專業性、條理性較強,所以摘抄到下文。

本實驗的算術邏輯運算器電路:輸入單元(撥碼開關)用來提供參與運算的數據,輸出單元(數碼顯示管7SEG-BCD/7SEG-BCD-GRN)顯示總線BUS的內容。運算器則由兩個集成電路芯片74LS181以串行進位形式構成8位運算器(ALU):ALU_L4B為低 4 位運算芯片, ALU_H4B 為高4位運算芯片。ALU_L4B 的進位輸出端 CN+4與 ALU_H4B 的進位輸入端CN相連,使低4位運算產生的進位送進高 4位運算中。 ALU_L4B 的進位輸入端CN連接到外來進位端開關ALU_CN,ALU_H4B的進位輸出端 CN+4 經過反相器74LS04,通過三態門接到溢出標志位CF指示燈(CF=1,即ALU運算結果溢出)。

ALU 有三個標志位:溢出標志位CF(最高位產生進位),零標志位ZF(ZF=1,ALU 運算結果為0)和符號標志位SF(SF=1,運算結果為負數;SF=0,運算結果為正數或0)。

ALU 的工作方式可通過設置兩個74LS181芯片的控制信號(ALU_S0、S1、S2、 S3、 M及CN)來實現, 其邏輯功能表如表2-1所示,表中“A”和“B”分別表示參與運算的操作數,“+”表示邏輯或,“加”表示算術求和。

圖 6?????? 74LS181邏輯功能表

注意:+表示或,加表示算數加法,0表示00000000,1表示00000001.

也就是說CN其實控制的是ALU算數器件輸入的,CN=0代表,CN=1代表

運算器ALU的輸出經過三態門(74LS244)和數據總線BUS相連。當運算器使能開關低電平有效(ALU_OE=0)的時候,運算器三個部位的三態門 244狀態為直通:74LS181的控制信號(S0~S3、M、CN)全部連通;74LS181的運算標志位(CF、ZF和 SF)的指示燈全部連通;以及 74LS181 的運算結果輸出到數據總BUS。當 ALU_OE=1 的時候,74LS181停止工作,此時74LS181的輸出端數據為無效數據,與數據總線BUS隔斷。

運算器ALU的兩個數據輸入端分別由兩個數據鎖存器(74LS273)DRA、DRB鎖存,74LS181 將DRA、DRB內的數據作為上述圖6中參與運算的數A和B。由于 DRA、DRB已經把數據暫存,只要74LS181的控制信號不變,那么74LS181的輸出數據也不會發生改變。數據鎖存器 DRA、DRB 的輸入連至數據總線 BUS,在 DRA_CLK、DRB_CLK 端開關出現上升沿跳變的時候,總線 BUS的數據分別打入 DRA、DRB鎖存。

五、實驗步驟

1、放置RESPACK-8和DIPSWC_8,通過總線將這兩個器件連接起來,注意接電源 和接地。 2、放置多個單刀雙擲開關,用來控制S0,S1,S2,S3,CN,M,還有ALU輸出 (低電平有效),DIPSWC_8(低電平有效)輸出和兩個存儲A和B的寄存器,并且都 高電平連接電源,低電平接地。

3、放置兩個74LS244 和 74LS273,DIPSWC_8 與兩個 74LS244 通過總線相連, 74LS244 與 74LS273通過總線相連,74LS244的作用為控制總線上DIPSWC_8的數據流 通,避免與結果數據沖突,74LS273的作用為儲存進行運算的兩個數值。

4、放置兩個74LS181和74LS244,74LS273通過總線與74LS181相連,依次連接單 刀雙擲開關(S0,S1...)和74LS244和74LS181。

5、放置3個74LS244,一個4078,一個74LS04,三個LED,其中一個74LS244與三個LED相連。

6、放置一個7SEG-BCD,一個7SEG-BCD-GRN,用來顯示數字與總線相連。每一個總線都必須命名,總線的命名格式為:name[0..n],name為總線的名字,n為總線數量,與總線相連的每一條線都要命名,格式為:namei,name為相連的總線的名字, i=0,1,2,3.....n

7、啟動仿真前,令(S3,S2,S1,S0,M,CN) = (1,1,1,1,1,1),DRA_CLK = DRB_CLK = 0,SW_BUS=ALU_OE=1;

8、啟動仿真后,SW_BUS=0,使用撥碼開關,選擇一個8位的二進制值0xAA,將 DRA-CLK置為1,將值存進鎖存器DRA,再將DRA-CLK置為0,再次使用撥碼開關, 選擇一個8位的二進制值0x55,將DRB-CLK置為1,將值存進鎖存器DRB,再將 DRB-CLK置為0,再令SW_BUS=1。

說明:本實驗的兩個操作數對于48組操作保持固定,同時0xAA和0x55具有特殊性,能夠體現泛華計算中更多的特殊情況,比如條件信號輸出零標志位ZF=1。

圖 7?????? 0xAA/0x55操作數預裝載,手動產生上升沿信號

9、設置ALU_OE=0,然后改變運算器的控制信號(S3,S2,S1,S0,M,CN),觀察運算器的輸出F和標志位CF、SF、ZF,并且把輸出F填入下表。

圖 8 ????? M=0算術運算,CN=0有進位,4/16種s3s2s1s0運算控制

圖 9?????? M=0算術運算,CN=1無進位,五種細分控制

圖 10????? 0xAA XOR 0x55 (逐位)

六、思考題

1.74LS181 運算器可以區分有符號數運算和無符號數運算么?可以執行無符號數的加法和減法運算么?對于有符號數的運算,74LS181運算器是補碼運算器還是原碼運算器?

這個問題可以參考實驗1思考題1和2的回答。74LS181運算器是可以區分有符號和無符號數的運算的,只需要根據SF和CF進行(組合)判別,就可以實現8位有符號輸入(1)-8位有符號輸出、8位無符號輸入(2)-8位無符號輸出或者9位有符號輸出。

在實驗一中使用M表示加法減法控制,實驗二中?對應減法運算,對應加法運算,因為ALU的功能更加強大,控制信號也從實驗一簡單的加減法單位控制信號變成了6位控制信號,最多可以對應64種控制情況;再結合條件信號輸出CF位和SF位就可以校驗溢出情況了。結合實驗1的思考題,情況(1)只需要用到SF位、控制信號和操作數的MSB,而情況(2)需要用到控制信號和CF位。

2.在74LS181 運算器的通路中,輸入鎖存器DRA、DRB的作用是什么?假設去掉其中一個輸入鎖存器,使得 74LS181 的輸入直連總線,運算器還能正常工作么?運算結果輸出端連接的74LS244緩沖器的作用是什么?假設去掉輸出端74LS244 緩沖器,使得74LS181 運算器的輸出直連總線,運算器還能正常工作么?

DRA和DRB的作用可能屬于信號邊沿有效型的寄存器而非高低電平有效型的鎖存器,其作用有兩個,一是緩存輸入數據,并確保數據的穩定性和準確性,沒有這兩個寄存器兩個操作數永遠相同,第二點更重要,如果沒有寄存器,ALU輸出使能之后結果會作為操作數再次參與運算,會出現無限計算循環的致命問題。

具有三態門結構的74LS244緩沖器的作用很重要,從電路結構圖可以發現數據輸入和數據輸出總線是同一條,因此在數據輸入端和數據輸出端都需要連接緩沖器;

如果去掉輸入端的緩沖器,由于DRA和DRB的存在,ALU(74LS181)的工作不會受到影響,但是一旦輸出使能之后,數據會通過總線“反流”到撥碼開關處,造成信號沖突——一個在硬件電路設計過程中很忌諱的問題。

而如果去掉的是題目問到的輸出端的緩沖器,同樣會產生信號沖突,因為輸入電路的三態門緩沖器輸出端一定存在高低電平,雖然在斷開左右連接后軟件顯示的是灰色信號,但是實際上數據輸入電路74LS244的輸出端的0-1高低電平,會直接通過總線“反流”到ALU輸出端,和ALU產生的計算輸出相互沖突,直接導致結果不穩定。

3.當74LS181運算器進行無符號數運算的過程中,運算結果的標志位SF有無意義?在有符號數運算過程中,標志位CF的含義是一致的么?如果做兩個有符號數加法“A+0”,標志位CF會置位么?如果做兩個有符號數減法“A-0”,標志位CF會置位么?在什么情況下有符號數的加法會出現標志位CF置位?

這個問題很有意思,和實驗一的思考題、實驗二的思考題1本質是一個問題。把操作數當成無符號類型是,只需要考慮CF位而不需要考慮SF位,因此并無意義,SF就是一個普通的位而非符號位。同理,操作數作為有符號類型輸入時,CF位是沒有意義的,甚至對于溢出的判斷都沒有幫助(除非在內部有使用,并向外部提供專門的溢出標志位),由于74LS181包括前述加法器的封裝特性,和外界不連通,所以也沒有辦法直接使用這種辦法判斷溢出。

筆者認為,A+0和A-0都不會使CF=1;CF=1可能出現在同符號的兩個有符號數相加或者不同符號的兩個有符號數相減時,后者轉化成前者,最終因為兩個操作數的絕對值之和超過了當前位數有符號數的表示范圍而產生溢出(下溢或上溢),8位的表示范圍是[-128,127]。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/89487.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/89487.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/89487.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

ubuntu下免sudo執行docker

前言 在ubuntu中,默認是無法使用root賬號的,安裝完docker后,不可避免的要使用sudo來執行docker命令,這就讓運維變得很麻煩 避免sudo # 添加當前用戶到 docker 組 sudo usermod -aG docker $USER# 刷新組權限 newgrp docker# 驗…

微處理原理與應用篇---STM32寄存器控制GPIO

在 ARM 架構下使用 C 語言控制 32 位寄存器實現 GPIO 操作,需結合芯片手冊進行寄存器映射和位操作。以下以 STM32F103(Cortex-M3 內核)為例,詳細介紹實現方法: 一、STM32F103 GPIO 控制(標準外設庫&#x…

基于OPUS-MT模型的中譯英程序實現

這是我的kaggle賬號名“fuliuqin” 代碼參考如下: nlp.paperflq | KaggleExplore and run machine learning code with Kaggle Notebooks | Using data from [Private Datasource]https://www.kaggle.com/code/fuliuqin/nlp-paperflq 目錄 緒論 研究背景與意義 研究…

炸雞派-定時器基礎例程

定時器簡介 基本定時器,計數中斷、產生DMA請求。 通用定時器,PWM輸出、輸入捕獲、脈沖計數。 高級定時器,輸出比較、互補輸出帶死區控制、PWM輸入。 中心對齊的計數模式可以生成對稱的PWM波形信號。計數可以先增后減。 這種模式下&#xff…

利用不坑盒子的Copilot,快速排值班表

馬上放暑假了,有多少人拼命排值班表的? 今天用我親身制作值班表的一些Excel操作,給大家分享一些在Excel中的小技巧,需要的及時收藏,有一天用得上~ 值班表全貌 先給大家看看我制作的值班表的樣子,應該大家…

Linux 面試知識(附常見命令)

目錄結構與重要文件 Linux 中一切皆文件,掌握目錄結構有助于理解系統管理與配置。 目錄說明/根目錄,所有文件起點/bin基本命令的可執行文件,如 ls, cp/sbin系統管理員用的命令,如 shutdown/etc配置文件目錄,如 /etc/…

Lua 安裝使用教程

一、Lua 簡介 Lua 是一門輕量級、高性能的腳本語言,具有簡潔語法、嵌入性強、可擴展性高等特點。廣泛應用于游戲開發(如 Roblox、World of Warcraft)、嵌入式開發、配置腳本、Nginx 擴展(OpenResty)等領域。 二、Lua …

SPAD像素概念理解

SPAD(Single Photon Avalanche Diode,單光子雪崩二極管)像素是一種能夠檢測單個光子的超靈敏光電探測器,其核心原理是通過雪崩倍增效應將單個光子產生的微弱電流信號放大到可觀測水平。 一、工作原理 雪崩倍增效應 當SPAD反向偏壓超過其擊穿電壓時,進入蓋革模式(Geiger M…

SSSSS

#include <iostream> void LineOf(bool** n1, bool** n2, int column, int raw, int* result) { for (int i 0; i < column; i) { int d -1, n -1; // 反向遍歷&#xff0c;找最后一個 true for (int j raw - 1; j > 0; j--) { …

【AI智能體】社交娛樂-智能助教

智能助教是扣子官方提供的教育類智能體模板。助教模板分為學習陪伴和作業批改兩種場景&#xff0c;分別適用于學生角色和教師角色&#xff0c;你可以根據需求選擇對應的模板&#xff0c;并將其改造為其他學科或其他教育階段的智能助教。 模板介紹 在智能學伴/助教的落地過程中…

自動化保護 AWS ECS Fargate 服務:使用 Prisma Cloud 實現容器安全

引言 在云原生時代,容器化技術已成為現代應用部署的標準方式。AWS ECS Fargate 作為一種無服務器容器服務,讓開發者能夠輕松運行容器化應用而無需管理底層基礎設施。然而,隨著容器技術的普及,安全問題也日益突出。本文將介紹如何通過 Python 腳本自動化地為 ECS Fargate 服…

Kafka Controller 元數據解析與故障恢復實戰指南

#作者&#xff1a;張桐瑞 文章目錄 1 生產案例&#xff1a;Controller 選舉在故障恢復中的關鍵作用1.1 問題背景1.2 核心操作原理&#xff1a; 2 Controller 元數據全景&#xff1a;從 ZooKeeper 到內存的數據鏡像2.1元數據核心載體&#xff1a;ControllerContext 類2.2核心元…

《尋北技術的全面剖析與應用前景研究報告》

一、引言 1.1 研究背景與意義 尋北&#xff0c;作為確定地理北極方向的關鍵技術&#xff0c;在眾多領域中扮演著舉足輕重的角色。在軍事領域&#xff0c;精確的尋北對于武器系統的瞄準、導彈的精確制導以及部隊的戰略部署都至關重要。例如&#xff0c;火炮在發射前需要精確尋…

深入比較 Gin 與 Beego:Go Web 框架的兩大選擇

引言 在 Go 語言生態系統中&#xff0c;Gin 和 Beego 是兩個非常受歡迎的 Web 框架。它們各自有著不同的設計理念和目標用戶群體。本文將對這兩個框架進行深入比較&#xff0c;并幫助你理解它們之間的區別&#xff0c;以便根據項目需求做出合適的選擇。 一、Gin 概述 Gin是一…

全新大模型開源,騰訊(int4能打DeepSeek) Vs 谷歌(2GB運行多模態)

大家好&#xff0c;我是 Ai 學習的老章 最近除了阿里 Qwen3 模型更新了圖片生成和處理能力&#xff0c;大家都可以玩轉吉卜力風格 還有幾個最近發布的大模型值得關注 1 是騰訊開源了 80B 混元 A13B 模型&#xff0c;亮點是精度無損的 int4 很能打 2 是谷歌開源的小參數 Gemm…

向量數據庫milvus中文全文檢索取不到數據的處理辦法

?檢查中文分詞配置? Milvus 2.5 支持原生中文全文檢索&#xff0c;但需顯式配置中文分詞器&#xff1a; 創建集合時指定分詞器類型為 chinese python schema.add_field(field_name"text", datatypeDataType.VARCHAR, max_length65535, enable_analyzerTrue, an…

Stable Diffusion 項目實戰落地:從0到1 掌握ControlNet 第一篇 打造光影字形的創意秘技

大家好呀,歡迎來到 AI造字工坊! 在這篇文章中,我們將帶領你走進一個神奇的世界——ControlNet。你可能聽說過它,但可能還沒摸清它的深奧之處。 今天,我們就來揭開它神秘的面紗,輕松帶你玩轉字形設計! 話說回來,相信大家對圖片生成、提示詞、放大操作、抽卡這些基本操…

從零用java實現 小紅書 springboot vue uniapp (12)實現分類篩選與視頻筆記功能

移動端演示 http://8.146.211.120:8081/#/ 管理端演示 http://8.146.211.120:8088/#/ 項目整體介紹及演示 前言 在前面的系列文章中&#xff0c;我們已經基本完成了小紅書項目的核心框架搭建和圖文筆記的發布、展示流程。為了豐富App的功能和用戶體驗&#xff0c;今天我們將在…

Python與Web3.py庫交互實踐

目錄 Python與Web3.py庫交互實踐引言:連接Python與區塊鏈的橋梁1. 環境配置與基礎連接1.1 安裝Web3.py1.2 連接以太坊節點2. 基礎區塊鏈交互2.1 賬戶與余額查詢2.2 創建并發送交易3. 智能合約交互3.1 加載和部署合約3.2 與已部署合約交互4. 高級功能實踐4.1 事件監聽4.2 與ERC…

《匯編語言:基于X86處理器》第6章 條件處理(2)

本章向程序員的匯編語言工具箱中引入一個重要的內容&#xff0c;使得編寫出來的程序具備作決策的功能。幾乎所有的程序都需要這種能力。首先&#xff0c;介紹布爾操作&#xff0c;由于能影響CPU狀態標志&#xff0c;它們是所有條件指令的核心。然后&#xff0c;說明怎樣使用演繹…