集成电路技术分享

 找回密码
 我要注册

QQ登录

只需一步,快速开始

搜索
查看: 2483|回复: 2

新手请教高手指点程序一点问题

[复制链接]
ATA 发表于 2010-6-27 23:23:49 | 显示全部楼层 |阅读模式
下面我自己写得一个逻辑时序程序,但现在在综合是总有一个问题:
@E: CL172 :"H:\CIS_SY~1\cis_system.v":24:13:24:14|Only one always block may assign a given variable sp
我不明白什么意思? 望高手指点!
我的源程序如下:


module cis_system(clk ,clk0,start,rst,clkop,lock, clk1,sp,tr,r_light);
input clk,start,rst,clk0;                 
output clk1,clkop,lock;                  
output sp, tr;                    
outputr_light;
                  
wire  clk0;

parameterpixel_count=1288 ;               
parametercolor  =1;               
parameterhigh_time =30;                 
parameterlow_time =30;
parameterlight_time=20;               
parametervol_ref =150;                 
parameterspi_width =6;                 
parameterdelay_time=3;                 
parameterpreclock = 10;  
  
reg[10:0]duty ;                  
  // reg[7:0]vol_ref_1;                          
reg   clk1;
reg sp;
reg tr;
reg r_light;
reg[16:0]clk_count;            
                        
assignclk0 = clkop;
initial begin
//vol_ref_1 = 150;              
   sp = 0;
   tr = 0;                  
   clk_count = 0;
   r_light =0;                    
  end                    
   
always@( posedge rst or posedge clk0 )
begin
  if(rst)
   begin
   sp=0;
   clk1 = 0;
   tr=0;
   clk_count = 0;
   r_light =0;
   duty =0;
    endelse
    begin
    duty =duty +1;
    if(duty==low_time)clk1 =~clk1;
    if(duty ==(high_time+low_time))
     begin
     clk1 =~clk1;
     duty =0;
     end
     end
end
always @(posedge clk1 )
  begin
  clk_count = clk_count+1;                          
  if( clk_count ==preclock )
  begin
   sp =1;
   tr =1;
   r_light =1;   
  end           
  if(clk_count ==(preclock+light_time))r_light=0;
         
  if (clk_count == (preclock+spi_width)) sp =0;
     
  if(clk_count ==(preclock + pixel_count))tr =0;
   
  if(clk_count ==( preclock +pixel_count+delay_time))clk_count =0;
  
end
endmodule
VVC 发表于 2010-6-28 01:11:47 | 显示全部楼层
怎么没有人帮忙?
ICE 发表于 2010-6-28 02:30:07 | 显示全部楼层
我突然想起:可能原因是由于clk1我将定义成寄存器类型,应该还要定义成wire。因为我后面有用到clk1的上升沿。我现在没有在办公室,不能实验,希望大家给意见。
您需要登录后才可以回帖 登录 | 我要注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

QQ|小黑屋|手机版|Archiver|fpga论坛|fpga设计论坛 ( 京ICP备20003123号-1 )

GMT+8, 2024-12-24 09:33 , Processed in 0.410648 second(s), 19 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表