云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > ALU(西南交大)VHDL

ALU(西南交大)VHDL

  • 62 次阅读
  • 3 次下载
  • 2026/4/26 2:36:47

实验五 注意事项

1. 电路逻辑结构图按照实验指导书图绘制。

2. 逻辑功能描述按照实验指导书,可以加上功能端。

3. 实验报告程序设计部分实现的方式有两种 ALU和数码显示部分都用同一个程序实现,则实验报告上用钢笔或中性笔手写程序

若ALU单元用代码实现,然后生成BLOCK图,再和实验四生成的模块连接,则需要手写ALU单元的代码,并画出ALU和七段数码显示连接的BLOCK图,然后将该BLOCK图截图、打印、粘贴。七段数码显示的代码不需要写,在实验报告中需要注明七段数码显示的代码引用实验四代码。

4. ALU单元设计注意事项: 数据从D端输入,由SEL端和Wt端控制写入A或B。 当A、B数据端的数据均输入后,则可以按照功能选择端S0、S1、S2的控制 ,进行相关运算。 移位运算要求用运算符拼接的形式。即'0'&A(6 downto 0)是八位数据A的逻辑左移。 请分清楚,逻辑右移(左移)、算术右移(左移),循环移位和有移位输入输出端的移位。本实验仅仅涉及逻辑移位。不要直接使用移位函数。 A、B数据输入端的变量定义为Variable类型变量

LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL;

USE IEEE.STD_LOGIC_UNSIGNED.ALL; USE IEEE.STD_LOGIC_ARITH.ALL;

ENTITY alu IS

PORT( sel,wt,cin,s2,s1,s0,clk :IN STD_LOGIC;--sel.wt选择输入AB,s2.s1.s0选择逻辑运算,clk时钟 din:IN STD_LOGIC_VECTOR(1 DOWNTO 0);--因为按键不够 将输入8位2进制通过din来分别 d:IN STD_LOGIC_VECTOR(3 DOWNTO 0); --输入din01时d置入低4位 din10时d置入高4位 dig:OUT STD_LOGIC_VECTOR(2 DOWNTO 0);--数码管位选 f:OUT STD_LOGIC_VECTOR(7 DOWNTO 0); ----数码管段位

cout:OUT STD_LOGIC); ---执行s2s1s0为100带进位加法时是否溢出 END alu;

ARCHITECTURE behave OF alu IS

SIGNAL z :STD_LOGIC_VECTOR(8 DOWNTO 0); ----s2s1s0为100时带进位加法结果暂存 SIGNAL s,scan :STD_LOGIC_VECTOR(2 DOWNTO 0);-- --scan是位选 s是逻辑运算指令暂存 SIGNAL rw :STD_LOGIC_VECTOR(1 DOWNTO 0); ----控制暂存AB信号

SIGNAL seg_r,f_r,d_r :STD_LOGIC_VECTOR(7 DOWNTO 0); ---d_r,f_r输入、结果输出暂存,seg_r数码管段位暂存 SIGNAL data_r :STD_LOGIC_VECTOR(3 DOWNTO 0); ----译码器输入暂存

begin

process(sel,wt,d,din)

variable a,b :STD_LOGIC_VECTOR(8 DOWNTO 0);

begin

rw<=sel & wt; s<=s2&s1&s0; z<=a+b+cin; f<=seg_r; dig<=scan;

if clk'event and clk='1' then -----数码管扫描 if(scan = \ scan <= \ else

scan <= scan + 1; end if;

case din is -----置入4位2进制 when \when \when others=>null; end case;

case rw is ---选择置入暂存器A或B when \when \when others=>null; end case;

case s is

when \清零

when \逻辑乘 when \逻辑加 when \逻辑异或 when \带进位输入的算术加法 when \左移一位 when \右移一位 when others=>null; end case;

case scan is ---扫描 when \when \when others=>null;

end case;

case data_r is ---数码管显示 when x\when x\when x\when x\when x\when x\when x\when x\when x\when x\when x\when x\when x\when x\when x\when x\when others=>null; end case;

end if;

end process; end behave; K[6]

时钟

LED1 K[9] K[10] K[11] K[12] COM COM COM K[7] K[8] DP

G F E D C

B A K[5]

K[4] K[3] K[1] K[2]

截图长度受限 故分段截图。

操作步骤:

第一步 拨开关 K[7]K[8] 01 为低4位 10为高4位---

第二步 拨开关 k[9]k[10]k[11]k[12] 置入4位2进制 ---

第三步 拨开关 k[1]k[2] 10:将置入的8位2进制放进暂存器A 01:将置入的8位2进制放进暂存器B 第四步 拨开关 k[3]k[4]k[5] 000清零 001逻辑乘(&)010逻辑加(或)011逻辑异或(异或) 100算术加 101 A左移一位 110 A右移一位 111无定义 进行算术加法时 若进位输入=1 则拨开关 k[6] 。

搜索更多关于: ALU(西南交大)VHDL 的文档
  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

实验五 注意事项 1. 电路逻辑结构图按照实验指导书图绘制。 2. 逻辑功能描述按照实验指导书,可以加上功能端。 3. 实验报告程序设计部分实现的方式有两种 ALU和数码显示部分都用同一个程序实现,则实验报告上用钢笔或中性笔手写程序 若ALU单元用代码实现,然后生成BLOCK图,再和实验四生成的模块连接,则需要手写ALU单元的代码,并画出ALU和七段数码显示连接的BLOCK图,然后将该BLOCK图截图、打印、粘贴。七段数码显示的代码不需要写,在实验报告中需要注明七段数码显示的代码引用实验四代码。 4. ALU单元设计注意事项: 数据从D端输入,由SEL端和Wt端控制写入A或B。 当A、B数据端的数据均输入后,则可以按照功能选择端S0、S1、S2的控制 ,进行相关运

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com