【问题标题】:Error: syntax error in set_input_delay (Quartus)错误:set_input_delay (Quartus) 中的语法错误
【发布时间】:2020-08-08 14:20:24
【问题描述】:

我的代码中的Fmax参数被报告为:No Paths to report。因此,我尝试使用set_input_delay 设置与定义时钟的输入信号关系。但是,错误报告指出:

文本“-”附近的 Verilog HDL 语法错误;期待“。”或“(”。

我查看了英特尔网站上的文档,它显示正确的语法是:

set_input_delay -clock clk 1.5 [get_ports myin]

module DT2(a,b,c,f,e,g,newin,v,w,x,m,n,F1,r,N1,D1,p,q,j,n1,t,clk,new);

input clk;
input [10:0]new;

set_input_delay -clock clk 1.5 [get_ports new];

output reg [12:0]a;
output reg [11:0]b;
output reg [10:0]c,f,e,g,m,n,F1,r;
output reg [10:0]newin;
output reg [40:0]v;
output reg [30:0]w;
output reg [20:0]x,N1,D1,p,q,n1;
output reg [1:0]j;
output reg t;
integer i;




initial
begin
a=13'b100_1000011111; //3.10
b=12'b10_1110011110; // 2.10
c=11'b1_0000101010; //1.10

e=11'b0_0000100100; //1.10
f=11'b0_0010111100; //1.10
g=11'b0_0111000000; //1.10
end

always @ (posedge clk)
begin
newin=new;
t=newin[10];
if(t==1'b1)
begin
newin=newin-11'b1_0000000000;
v = (newin*newin*newin*e);
w = (newin*newin*f); 
x = (newin*g);
m=(v[40:30])+(x[20:10])+(11'b0_0000000101);
n = m-(w[30:20]);
x=(n*n);
n=n<<1;
m=n-x[20:10];  //need to keep
n=n>>1;
n=(11'b1_0000000000)-n;
end

else
begin
v = (newin*newin*newin*a);
w = (newin*newin*b);
x = (newin*c);

m=(v[40:30])+(x[20:10])+(11'b0_0000001100);
n = m-(w[30:20]);
x=(n*n);
n=n<<1;
m=n+x[20:10];  //need to keep
n=n>>1;
n=(11'b1_0000000000)+n;

end


n1=(n*n);
//SHIFTING NONE

j=2'b00;
for(i=0;i<=16;i=i+1)
    begin
    if(j==2'b00)
        begin
        N1=m*(n1[20:10]);
        D1=(n1[20:10])*(n1[20:10]);
        F1=12'b10_0000000000-D1[20:10];
        j=2'b01;
        end
    else if(j==2'b01)
        begin
        p=F1*N1[20:10];
        q=F1*D1[20:10];
        r=12'b10_0000000000-D1[20:10];
        j=2'b10;
        end
    else if(j==2'b10)
        begin
        N1=r*p[20:10];
        D1=r*q[20:10];
        F1=12'b10_0000000000-D1[20:10];
        j=2'b01;
        end
        
    end

end


endmodule 

【问题讨论】:

    标签: syntax-error verilog quartus


    【解决方案1】:

    您必须从 Verilog 代码中删除以下行,因为它不是合法的 Verilog 语法:

    set_input_delay -clock clk 1.5 [get_ports new];
    

    它看起来像是您的综合工具的命令,并且可能属于综合脚本。

    【讨论】:

      【解决方案2】:

      如前所述,set_input_delay -clock clk 1.5 [get_ports myin] 语句不是 Verilog。这是一个概要设计约束。

      在 Quartus 项目中,.sdc 文件用于保存设计的时序约束。你的陈述需要在那里。在构建过程中,此文件是综合工具和装配工具的输入。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2023-03-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-19
        • 1970-01-01
        • 2016-09-29
        • 2013-04-07
        相关资源
        最近更新 更多