微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > RTL原理图中,WideOr不能引出三根线吗?

RTL原理图中,WideOr不能引出三根线吗?

时间:10-02 整理:3721RD 点击:
图中,WideOr1和WideOr2完全一样,为什么不是用一个WideOr引出三根线呢?(图下面是相关code)



  1. module Case_module
  2. (
  3. CLK,RSTn,
  4. X,
  5. Y
  6. );
  7. input CLK,RSTn;
  8. input [7:0]X;
  9. output [7:0]Y;reg [7:0]x;
  10. reg [7:0]y;reg [3:0]i;always @(posedge CLK or negedge RSTn)
  11. if(!RSTn)
  12.   begin
  13.    x <= 8'b0;
  14.    y <= 8'h0F;
  15.    i <= 4'b1;
  16.   end
  17. else
  18.   begin
  19.     case(i)
  20.     4'b0001,4'b0010,4'b0100,4'b1000:
  21.      begin
  22.       x <= x + 1'b1;
  23.       y <= x;
  24.       i <= i << 1;
  25.      end
  26.     default: i <= 4'hx;
  27.    endcase
  28.    
  29.   endassign Y = y;
  30.   
  31. endmodule

复制代码

09.output [7:0]Y;reg [7:0]x;
明显有错么,x是input,怎么可能是reg


    我这代码里input X没用,要想用的话always里x<=X就行了,但这跟我的问题没有关系

哈哈,看错了大x和小x不一样!

这一步是Elaborate后的图,此时还未进行任何优化,直接由RTL翻译过来的,所以你会看到两个重复的逻辑(一个always块里有多个变量赋值的,会被拆分为多个always块,然后独立翻译为电路)。
Synthesis那一步就会进行各种化简优化了。


我试了 start analysis & synthesis等几个选项, 但是rtl viewer没有被优化,请问您说的是这个图里的某个选项吗?需要使用Synplify吗?



RTL Viewer看的就是Elaborate后的,Synthesis后的你要看Post-Mapping。
这里的Synthesis就是你图中第三项。RTL Viewer在跑完图中第二项就可以看了。



    谢谢!看过您写的手动P&R的帖子,十分钦佩!

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top