EDA实验实习报告.doc
文本预览下载声明
实验七、八
实验报告
班级:通工0909班
姓名: 罗威
学号班内序号: 03
实验七:移位寄存器设计
一、实验目的
1、掌握移位寄存器电路设计的方法。
2、通过开发CPLD来实现时序逻辑电路的功能。
二、实验所用仪表及主要器材
计算机,软件maxplus2,CPLD芯片
三、实验原理简述
(1)启用原理图(文本)编辑器编译;
(2)保存、编辑程序语言,在程序无错后进行编译。
(3)启动波形图编译器,设置、编辑波形图并保存、仿真。
(4)指定、设置CPLD芯片——EPM7032SLC44-10;输入输出分配管脚。
(5)下载实现,按照设定的输入输出管脚,用线连接实验板上的发光二极管和开关改变输入开关的状态,观察输出端对应的发光二极管的状态。
四、实验测量记录(真值表、源程序、仿真图)
1、 设计一个带异步清零的并入串出移位寄存器,在时钟上升沿的作用下,输入的并行数据由输出端逐位输出。
原程序:
library ieee;
use ieee.std_logic_1164.all;
entity yiweijicun is
port(clk,rd,sr,sl,s1,s0:in std_logic;
d:in std_logic_vector(3 downto 0);
y:out std_logic_vector(3 downto 0));
end;
architecture yiweijicun1 of yiweijicun is
signal temp:std_logic_vector(3 downto 0);
begin
process(clk,rd)
begin
if rd=0then temp=0000;
elsif(clk event and clk=1)then
if(s1=0and s0=0)then
temp=d;
elsif(s1=1and s0=0)then
temp=temp(2 downto 0)sl;
elsif(s1=0and s0=1)then
temp=srtemp(3 downto 1);
end if;
end if;
end process;
y=temp;
end;
仿真图:
2、设计一个能自启的环形计数器,实现如图所示的状态转换图。
library ieee;
use ieee.std_logic_1164.all;
entity ziqixunhuan is
port(clk,reset:in std_logic;
yq:out std_logic_vector(3 downto 0));
end;
architecture ziqixunhuan1 of ziqixunhuan is
signal nextq: std_logic_vector(3 downto 0);
begin
process(clk,reset)
begin
if reset=1 then nextq=0001;
elsif(clkevent and clk=1)then
case nextq is
when0001= nextq =0010;
when0010= nextq =0100;
when0100= nextq =1000;
when others=nextq=0001;
end case;
end if;
end process;
yq=nextq;
end;
仿真图:(自启动体现在哪?请你考虑下!)
3、设计一个8为循环移位寄存器,设计一个移位控制端dir,dir为1,则循环右移,dir为0,则循环左移,输入输出均为并行数据。
library ieee;
use ieee.std_logic_1164.all;
entity xunhuanyiwei is
port(D:in std_logic_vector(7 downto 0);
reset,clk,dir:in std_logic;
Y:out std_logic_vector(7 downto 0));
end;
architecture xunhuanyiwei1 of xunhuanyiwei is
signal nextD: std_logic_vector(7 downto 0);
begin
process(clk,reset)
begin
if reset=1 then nextD=D;
显示全部