ALTERA FPGA设计之带复位的D触发器_基本实验

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

ALTERA FPGA设计之带复位的D触发器_基本实验Quartus II 13.0 SP1 + Modelsim SE-64 10.2c + Cyclone

【姓名学号】

实验目的:

1、熟悉VHDL触发器的设计;

2、了解FPGA基本结构中的触发器。

3、熟悉VHDL test bench(测试平台/测试激励)的设计;

4、熟练掌握Altera FPGA的开发环境、设计步骤和流程。

实验形式:边做实验边写实验报告,实验完成后即提交实验报告。

【描述实验中的设计】

用IF 语句设计D 触发器,实现带复位功能的D触发器。

【实验中设计实现的HDL代码】

library ieee;

use ieee.std_logic_1164.all;

entity exp1 is

port(R:in std_logic;

clk:in std_logic;

D:in std_logic;

Q:out std_logic;

Q0:out std_logic);

end exp1;

architecture arch_exp1 of exp1 is

signal a:std_logic;

begin

process(clk,R)

begin

if(clk'event and clk='1')then

if(R='0')then

a<='0';

else

a<=D;

end if;

end if;

end process;

Q<=a;

Q0<=not a;

end arch_exp1;

【实验中用于仿真的HDL test bench代码】library ieee;

use ieee.std_logic_1164.all;

entity exp1_tb is

end exp1_tb;

architecture arch_Etb of exp1_tb is

component exp1 is

port(R:in std_logic;

clk:in std_logic;

D:in std_logic;

Q:out std_logic;

Q0:out std_logic);

end component;

signal R,clk,D,Q,Q0:std_logic;

begin

u_tb:exp1 port map(R=>R,clk=>clk,D=>D,Q=>Q,Q0=>Q0);

process

begin

R <='0';

D <='0';

wait for 10 ns;

R <='0';

D <='1';

wait for 10 ns;

R <='1';

D <='0';

wait for 10 ns;

R <='1';

D <='1';

wait for 10 ns;

R <='1';

D <='0';

wait;

end process;

clk_stimulus:process

begin

clk <='0';

wait for 4 ns;

clk <='1';

wait for 4 ns;

end process clk_stimulus;

end arch_Etb;

【实验中设计的功能仿真结果及分析】

功能仿真结果分析:从上图中的仿真结果可以看出,0 ns~20ns 输入R为低电平’0’,4 ns时,clk 遇到上升沿,电路复位;20ns以后输入R为高电平’1’;30ns~40ns,输入D 为高电平‘1’,36ns 时,clk为上升沿,输出Q置为D即高电平‘1’,输出Q0置为D的非即低电平‘0’。功能仿真结果正好验证了我们设计的带复位功能的D触发器是正确的。

【实验中设计的时序仿真结果及分析】(注意建立时间和保持时间)

时序仿真结果分析:从上图中的仿真结果可以看出,0 ns~20ns 输入R为低电平’0’,4 ns时,clk 遇到上升沿,电路复位延迟到7.6ns才发生;20ns以后输入R为高电平’1’;30ns~40ns,输入D 为高电平‘1’,36ns时,clk为上升沿,输出Q置为D即高电平‘1’,输出Q0置为D的非即低电平‘0’,二者都延时到48ns才发生。时序仿真结果同样验证了我们设计的带复位功能的D触发器是正确的。

【实验中设计的RTL级电路结构及分析】

只含有一个触发器,R作为复位信号,clk 上升沿触发。

【实验中设计的硬件验证结果及分析】

R和D设置为K1,K2,Q和Q0设置为L1,L2,时钟信号由单步时钟输入B18:Step控制。经验证硬件电路满足上述表格关系,实验成功。

【列出实验中遇到的问题及解决情况】

1、开始时编程得到的RTL电路中含有两个触发器,是因为代码为“Q=D,Q0=not D“,老师要求不能用

inout端口,故改用signal,将信号量赋值给D,“Q=a,Q0=not a”,问题解决。

2、功能仿真中Q和Q0的输出总是慢半个周期,几乎可以看做是下降沿触发,经老师提醒,发现自

己在信号量复制给输出量是代码位置有误,应放在end process之后,仅仅放在end if之后仍会影响输出。。

【实验总结】

这次实验我做了两个晚上,第一次做时,因为没有找出功能仿真错误所在,所以决定第二天再来试一次,最后在老师的帮助下完成了实验。这次实验让我印象深刻,同时也学到了很多知识,以后做实验硬胆大心细多思考,稍不注意的小错误都可能导致结果不正确。

相关文档
最新文档