逻辑优化 (NOT Gate Push-Back)

上一篇 / 下一篇  2007-12-16 02:43:20 / 个人分类:软件使用

请问下面程序中为何异步复位值为“111”时端口输出k1的数值是正确的,而内部信号k的数值与k1的值刚好相反
具体如下:
仿真时异步复位值为 k<="111";时端口输出k1的数值是从“111”-“000”-“001”-“010”-“011”- - 依次计数输出。而内部信号k的数值与k1的值刚好相反。其数值是从“000”-“111”-“110”-“101”-“100”- -,也就是说k中相应位为1时,k1中与k 同的位为0,k中相应位为0时,k1中与k 同的位为1。
    仿真时异步复位值为 k不是"111";  k与k1的数值是相同的。是从“111”-“000”-“001”-“010”-“011”- - 依次计数输出。

library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
entity clk_d is
port ( en_k,clk:in std_logic;
k1: out std_logic_vector(2 downto 0)
);
end clk_d;
architecture behav of clk_d is
signal k:std_logic_vector(2 downto 0);
begin
process(en_k,k,clk)
begin
if en_k='0' then
  k<="111";
elsif clk'event and clk='1' then  
   k<=k+1;
end if;
end process;
k1<=k;
end behav;
解决方式:
这是QII综合时的优化(非门后移)的结果,不影响结果的。可以通过如下方法让这一功能失效:
Assignments>setting>Analysis & Synthesis Setting>more setting>下将
NOT Gate Push-Back项置为OFF。或者 另外一个办法就是加个PIN直接拉出。

FPGA/CPLD器件价格查询

相关阅读:

TAG: 设置 push back

 

评分:0

我来说两句

显示全部

:loveliness: :handshake :victory: :funk: :time: :kiss: :call: :hug: :lol :'( :Q :L ;P :$ :P :o :@ :D :( :)

日历

« 2008-12-03  
 123456
78910111213
14151617181920
21222324252627
28293031   

数据统计

  • 访问量: 837
  • 日志数: 7
  • 文件数: 1
  • 建立时间: 2007-03-16
  • 更新时间: 2007-12-16

RSS订阅

Open Toolbar