首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

进程拆分

进程拆分

描述方法一: 

read:process(clk)
 begin               
  if(clk'event and clk = '1') then
   if(parallel_en='1') then -- 串并转换完成
    addr(0) <= W1_adr;addr(1) <= W2_adr;addr(2) <= W3_adr; -- 赋初值
    AA <= data0_in; BB <= data1_in;
       CC <= data2_in; DD <= data3_in;
   end if;
  end if; -- clk
 end process read ;
描述方法二:
 read_data:process(clk)
 begin               
  if(clk'event and clk = '1') then
   if(parallel_en='1') then -- 串并转换完成
      AA <= data0_in; BB <= data1_in;
       CC <= data2_in; DD <= data3_in;
   end if;
  end if; -- clk
 end process read_data ;
 read_adr:process(clk)
 begin               
  if(clk'event and clk = '1') then
   if(parallel_en='1') then -- 串并转换完成
    addr(0) <= W1_adr;addr(1) <= W2_adr;addr(2) <= W3_adr; -- 赋初值
   end if;
  end if; -- clk
 end process read_adr ;

请大家谈谈上面两种进程的描述方法有什么区别呢 ?我本来以为会是一样的,但是实际我发现采用第二种描述反而使系统工作的最高频率下降了,不知道什么原因??

你这样的拆分应该区别不大,即使是电路层的区别也不大。

你这两种方法都是有D触发器加选择器,除非是你的综合工具或器件资源构成的原因。

这个版主不太冷 =========================== 我的中电网博客:http://blog.chinaecnet.com/u/20/index.htm

就是,就是,我本来感觉也应该是一样的,但是现在使用quartus 6.0 软件进程仿真的时候,发现结果不一样,所以很奇怪

按理说,把进程拆分之后,一个进程中所要处理的语句量变小了,Fmax 应该提高才是呀 

[em06]

我现在感觉是这样的:

在 parallel_en='1' 刚有效的时候,可能data0_in,data1_in,data2_in,data3_in这几个信号刚好没有建立好

现在在其前面加了

  addr(0) <= W1_adr;addr(1) <= W2_adr;addr(2) <= W3_adr; -- 赋初值
于是等上面 赋初值语句完成的时候,data0_in,data1_in,data2_in,data3_in也建立完成,于是

 AA <= data0_in; BB <= data1_in;  CC <= data2_in; DD <= data3_in;赋值便得到正确的结果,这样的可能性存在吗 ?

[此贴子已经被作者于2007-10-7 12:18:12编辑过]

“ if(clk'event and clk = '1') then
   if(parallel_en='1') then -- 串并转换完成
    addr(0) <= W1_adr;addr(1) <= W2_adr;addr(2) <= W3_adr; -- 赋初值
    AA <= data0_in; BB <= data1_in;
       CC <= data2_in; DD <= data3_in;
   end if;
  end if;”

其实这些就是分离的语句,之间没有联系。

就是由le中的lut和dff就可以构成。rtl都一样。

你如果要深究,可以用chip edtor来看。

这个版主不太冷 =========================== 我的中电网博客:http://blog.chinaecnet.com/u/20/index.htm

回复:(caopengly)

恩,在您的建议下,几天用 rtl  vewer 看了,确实这两种描述生成的 结构是一样的!

不过现在就更加奇怪,为什么有不同的仿真结果了

[em06]

不过现在就更加奇怪,为什么有不同的仿真结果了

这就是所谓的综合前仿真和综合后仿真的差异了。

具体的你可以到实现层去看看,可以用chip edtor来看。

这个版主不太冷 =========================== 我的中电网博客:http://blog.chinaecnet.com/u/20/index.htm
chip edtor 在往上找了下 怎么没有这个的介绍?请问哪里可以下
返回列表