图1红色线是同步clk.PDFVIP

  • 3
  • 0
  • 约4.04千字
  • 约 7页
  • 2018-12-31 发布于湖北
  • 举报
图1 红色线 是 同步 clk 在输出端 cos_out 引脚,是cos1 的输出,cos1 是在时钟clk 上升沿时候的cos 输出,详细如图1 的右上角所示,该电路图是 quartus II 综合后,红色方 框是人为添加的。 在modelsim10.0c 中做 后仿真, cos 与 cos1 的波形变化是正确的, 而 cos1 至 cos_out 的变化出现了更大的延迟,并且伴有 毛刺的出现,求解答, 谢谢。 图3 是图2 的放大图,以数据831 为例,cos_out 在时钟clk 的上升沿之后,输出831 之前,出现了两个毛刺287 和319,每个毛刺持续时间大约是 1ns 。 从上升沿(500ns )至831 出现时刻(509 ns),共有9 ns 延迟,如图4 所示。 个人猜测:是不是由于cos_out 是输出端,布线延迟比较大?从而也因为受到了较多的干扰而出现毛刺? 在图4 后面是 程序的源代码。 1 图2 cos_out 输出端伴有 毛刺出现 (缩小图) 2 图3 cos_out 输出端伴有 毛刺出现 (放大图) 3 图4 9ns 延迟 4 library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; ENTITY cont15 IS PORT(clk,reset: in std_logic; cos_out : out std_logic_vector(11 downto 0)); END cont15; ARCHITECTURE counter1 OF cont15 IS signal count : integer range 0 to 15 := 0; signal tableout : std_logic_vector(11 downto 0):= 000000000000; signal cos : std_logic_vector(11 downto 0):= 000000000000; signal cos1 :std_logic_vector(11 downto 0):= 000000000000; BEGIN count_pro: PROCESS(clk,reset) BEGIN IF reset = 0 THEN count = 0; ELSIF clkevent and clk = 1THEN IF (count = 14) THEN count = 0 ; ELSE count = count + 1; 5 END IF; end if; end process; lut_process:process(count) begin case count is WHEN 0 = tableout = 000000000000; WHEN 1 = tableout = 001100111111;

文档评论(0)

1亿VIP精品文档

相关文档