集成电路技术分享

 找回密码
 我要注册

QQ登录

只需一步,快速开始

搜索
查看: 839|回复: 0

求教verilog 问题

[复制链接]
林大伟 发表于 2013-3-19 21:30:18 | 显示全部楼层 |阅读模式
AD7864转换器的控制模块设计程序如下:
module ads7864_control(reset,clk,BUSY,ad_data,wraddress,wrdata,wren,WR,RD,CS);
input reset,clk,BUSY;
inout[7:0] ad_data;
output[2:0] wraddress;
output[15:0] wrdata;
output wren,WR,RD,CS;
reg[7:0] cnt0,cnt1,cnt2;
reg[2:0] wraddress;
reg[15:0] wrdata;
reg wren,WR,RD,CS;
reg[2:0] state;
reg[15:0] ad_buffer;
reg[7:0] ad_data;
parameter ad_init=3'b000,ad_sample_hold=3'b001,ad_convert=3'b010,ad_cyclemode=3'b011,ad_read=3'b100,ad_finish=3'b101;
always@(posedge clk)
  if(!reset)
   begin
   ad_data[0]<=1;
   ad_data[1]<=1;
   ad_data[2]<=1;
   ad_data[5]<=1'bz;
   ad_data[6]<=1'bz;
   ad_data[7]<=1'bz;
   RD<=1;
   CS<=1;
   wren<=0;
   cnt0<=0;
   cnt1<=0;
   cnt2<=0;
   WR<=1;
   state<=ad_init;
   end
else
begin
case(state)
  ad_init:
   begin
   ad_data[0]<=1;
   ad_data[1]<=1;
   ad_data[2]<=1;
   ad_data[5]<=1'bz;
   ad_data[6]<=1'bz;
   ad_data[7]<=1'bz;
   RD<=1;
   CS<=1;
   wren<=0;
   cnt0<=0;
   cnt1<=0;
   cnt2<=0;
   WR<=1;
   state<=ad_sample_hold;
   end
ad_sample_hold:
   begin
   if(cnt0<4)
   begin
   ad_data[0]<=1;
   ad_data[1]<=1;
   ad_data[2]<=1;
   cnt0<=cnt0+1'b1;
   end
   else if(cnt0<7)
   begin
   ad_data[0]<=0;
   ad_data[1]<=0;
   ad_data[2]<=0;
   cnt0<=cnt0+1'b1;
   end
   else
   begin
   ad_data[0]<=1;
   ad_data[1]<=1;
   ad_data[2]<=1;
   cnt0<=0;
   CS<=1;
   WR<=0;
   state<=ad_convert;
   end
   end
   
ad_convert:
    begin
    if(cnt0<67)
    begin
    cnt0<=cnt0+1'b1;
    state<=ad_convert;
    end
    else
    begin
    cnt0<=0;
    state<=ad_cyclemode;
    end
  
ad_cyclemode:
    begin
    WR<=1;
    ad_data[5]<=1;
    ad_data[6]<=1;
    ad_data[7]<=0;
#2  WR<=0;
    CS<=0;
    state<=ad_read;
    end
   
   ad_read:
     begin
     CS<=0;
     cnt1<=cnt0;
     if(cnt1<3)
     begin
     RD<=1;
     cnt1<=cnt1+1'b1;
     end
     else if(cnt1<6)
     begin
     RD<=0;     
     cnt1<=cnt1+1'b1;   
     ad_buffer[7:0]<=ad_data;
     end
     else if(cnt1<9)
     begin
     RD<=1;
     cnt1<=cnt1+1'b1;
     end
     else if(cnt1<12)
     begin
     RD<=0;   
     cnt1<=cnt1+1'b1;
     ad_buffer[15:8]<=ad_data;
      if(ad_buffer[15]==1)
         begin
         wraddress<=ad_buffer[14:12];
         wrdata<={1'b0,1'b0,1'b0,1'b0,ad_buffer[11:0]};
         wren<=1;
         cnt2<=cnt2+1'b1;
         end
       else
         begin
         wren<=0;
         cnt2<=0;
         end
      if(cnt2<6)
      begin
      state<= ad_read;
      end
      else
      begin
      cnt2<=0;
      state<=ad_finish;
      end
   end
end
         
   ad_finish:
     begin
     ad_data[0]<=1;
     ad_data[1]<=1;
     ad_data[2]<=1;
     ad_data[5]<=1'bz;
     ad_data[6]<=1'bz;
     ad_data[7]<=1'bz;
     WR<=1;
     RD<=1;
     CS<=1;
     wren<=0;
     cnt0<=0;
     cnt1<=0;
     cnt2<=0;
     state<=ad_init;
     end
         
    default:
          begin
          ad_data[0]<=1;
          ad_data[1]<=1;
          ad_data[2]<=1;
          ad_data[5]<=1'bz;
          ad_data[6]<=1'bz;
          ad_data[7]<=1'bz;
          WR<=1;
          RD<=1;
          CS<=1;
          wren<=0;
          cnt0<=0;
          cnt1<=0;
          cnt2<=0;
          state<=ad_init;
          end
   endcase
end
endmodule

编译后出现错误提示如下:是什么问题?
Error (10170): Verilog HDL syntax error at ads7864_control.v(96) near text ":";  expecting "<=", or "="
Error (10170): Verilog HDL syntax error at ads7864_control.v(107) near text ":";  expecting "<=", or "="
Error (10170): Verilog HDL syntax error at ads7864_control.v(156) near text ":";  expecting "<=", or "="
Error (10170): Verilog HDL syntax error at ads7864_control.v(174) near text "default";  expecting "@", or "end", or an identifier ("default" is a reserved keyword ), or a system task, or "{", or a sequential statement
Error (10170): Verilog HDL syntax error at ads7864_control.v(191) near text "endcase";  expecting "@", or "end", or an identifier ("endcase" is a reserved keyword ), or a system task, or "{", or a sequential statement
您需要登录后才可以回帖 登录 | 我要注册

本版积分规则

关闭

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

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

GMT+8, 2025-6-27 07:34 , Processed in 0.077619 second(s), 20 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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