打印
[verilog]

编译是出现的问题?

[复制链接]
1452|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
魔人布欧|  楼主 | 2016-3-8 10:10 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
魔人布欧|  楼主 | 2016-3-8 10:30 | 只看该作者
module srcn(pd,nc1,i1,j1);

   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
这是写的代码。

使用特权

评论回复
板凳
魔人布欧|  楼主 | 2016-3-8 10:34 | 只看该作者
魔人布欧 发表于 2016-3-8 10:30
module srcn(pd,nc1,i1,j1);

   input clk,rst_n;

希望各大高手帮忙修改一下,谢谢.

使用特权

评论回复
地板
紫藤遐想| | 2016-3-8 16:05 | 只看该作者
输入输出不对啊,,没看到输出在哪。。。。。。。。

使用特权

评论回复
5
魔人布欧|  楼主 | 2016-3-8 21:33 | 只看该作者
紫藤遐想 发表于 2016-3-8 16:05
输入输出不对啊,,没看到输出在哪。。。。。。。。

最后额输出是nq[],他的C语言代码是
        if(std<1.5)
             {
                  nse[0]++;
             }
        else
           {
                 nse[1]++;
           }
怎样用Verilog代码写出来,希望帮忙,谢谢!

使用特权

评论回复
6
3008202060| | 2016-3-16 23:53 | 只看该作者
always@(posedge clk or posedge rst) begin
if(rst)
      nse[1:0] <= 2'b00;  
else if(std<N)
        nse[0] <= nse[0]+1'b1;
  else
        nse[1] <= nse[0] +1'b1;
end

你把你的std成一个系数 小数没法直接用

使用特权

评论回复
7
魔人布欧|  楼主 | 2016-3-29 19:24 | 只看该作者
3008202060 发表于 2016-3-16 23:53
always@(posedge clk or posedge rst) begin
if(rst)
      nse[1:0]

谢谢。我还有一个问题就是关于多重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);
       
                       }
       
                }  
这个该怎么写,有什么方法?谢谢!

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

20

主题

43

帖子

1

粉丝