always @(posedge clk or negedge rst_n)
begin
for(i=1;i<511;i=i+1)
begin
for(j=1;j<511;j=j+1)
begin
ac1=64'b0;
tc=64'b0;
sc1=64'b0;
for(k=0;k<=2;k=k+1)
begin
for(l=0;l<=2;l=l+1)
begin
ac1=ac1+pd[i+k][j+l];
end
end
for(k=0;k<=2;k=k+1)
begin
for(l=0;l<=2;l=l+1)
begin
tc1=pd[i+k][j+l]-ac1;
tc=tc+pd[i+k][j+l]*tc1;
end
end
s1=tc/9;
sc1=s1^0.5;
if(sc1<1.5)
begin
nq[0] = nq[0]+1;
end
else
begin
nq[1] = nq[1]+1;
end
end
end
end
endmodule
这是写的代码。
input clk,rst_n;
reg[63:0] sc1,ac1,tc,tc1,s1;
reg[63:0] pd [1:510][1:510];
reg[31:0] nq[0:1];
integer i1,j1;
initial
always @(posedge clk or negedge rst_n)
begin
for(i=1;i<511;i=i+1)
begin
for(j=1;j<511;j=j+1)
begin
ac1=64'b0;
tc=64'b0;
sc1=64'b0;
for(k=0;k<=2;k=k+1)
begin
for(l=0;l<=2;l=l+1)
begin
ac1=ac1+pd[i+k][j+l];
end
end
for(k=0;k<=2;k=k+1)
begin
for(l=0;l<=2;l=l+1)
begin
tc1=pd[i+k][j+l]-ac1;
tc=tc+pd[i+k][j+l]*tc1;
end
end
s1=tc/9;
sc1=s1^0.5;
if(sc1<1.5)
begin
nq[0] = nq[0]+1;
end
else
begin
nq[1] = nq[1]+1;
end
end
end
end
endmodule
这是写的代码。
希望各大高手帮忙修改一下,谢谢.
最后额输出是nq[],他的C语言代码是
if(std<1.5)
{
nse[0]++;
}
else
{
nse[1]++;
}
怎样用Verilog代码写出来,希望帮忙,谢谢!
谢谢。我还有一个问题就是关于多重for循环程序如下:
- void main(short int** pd,int* nse,int il,int jl)
- {
-
- int i,j,k,l;
-
- double avg,temp;
-
- for(i=1;i<15;i++)
- {
- for(j=1;j<15;j++)
- {
- avg=0;
-
- temp=0;
- for(k=-1;k<=1;k++)
- {
-
- for(l=-1;l<=1;l++)
- {
-
- avg+=(double)pd[i+k][j+l];
-
- }
-
- }
- avg=avg/((double)sn*sn);
- for(k=-1;k<=1;k++)
- {
-
- for(l=-1;l<=1;l++)
- {
-
- temp+=((double)pd[i+k][j+l]-avg)*((double)pd[i+k][j+l]-avg);
-
- }
-
- }
复制代码这个该怎么写,有什么方法?谢谢!一周热门 更多>