微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > 利用verilog 实现CCD的控制 这程序编译时有32个错误 请高手矫正

利用verilog 实现CCD的控制 这程序编译时有32个错误 请高手矫正

时间:10-02 整理:3721RD 点击:

1 module CCD_Capture (
  2   oDATA,
  3   oDVAL,
  4   oX_Cont,
  5   oY_Cont,
  6   oFrame_Cont,
  7   iDATA,
  8   iFVAL,
  9   iLVAL,
10   iSTART,
11   iEND,
12   iCLK,
13   iRST
14 );
15
16 input  [9:0]  iDATA;
17 input         iFVAL;
18 input         iLVAL;
19 input         iSTART;
20 input         iEND;
21 input         iCLK;
22 input         iRST;
23 output [9:0]  oDATA;
24 output [10:0] oX_Cont;
25 output [10:0] oY_Cont;
26 output [31:0] oFrame_Cont;
27 output        oDVAL;
28 reg           Pre_FVAL;
29 reg           mCCD_FVAL;
30 reg           mCCD_LVAL;
31 reg    [9:0]  mCCD_DATA;
32 reg    [10:0] X_Cont;
33 reg    [10:0] Y_Cont;
34 reg    [31:0] Frame_Cont;
35 reg           mSTART;
36
37 assign oX_Cont     = X_Cont;
38 assign oY_Cont     = Y_Cont;
39 assign oFrame_Cont = Frame_Cont;
40 assign oDATA       = mCCD_DATA;
41 assign oDVAL       = mCCD_FVAL&mCCD_LVAL;
42
43 always@(posedge iCLK or negedge iRST)
44 begin
45
if (!iRST)
46     mSTART <= 0;
47
else
48   begin
49
if (iSTART)
50       mSTART <= 1;
51
52
if (iEND)
53       mSTART <= 0;
54   end
55 end
56
57 always@(posedge iCLK or negedge iRST)
58 begin
59
if (!iRST)
60     begin
61       Pre_FVAL  <= 0;
62       mCCD_FVAL <= 0;
63       mCCD_LVAL <= 0;
64       mCCD_DATA <= 0;
65       X_Cont    <= 0;
66       Y_Cont    <= 0;
67     end
68
else
69     begin
70       Pre_FVAL <= iFVAL;
71
if (({Pre_FVAL,iFVAL}==2'b01) && mSTART)
72         mCCD_FVAL <= 1;
73
else
if ({Pre_FVAL,iFVAL}==2'b10)
74         mCCD_FVAL <= 0;
75
76       mCCD_LVAL <= iLVAL;
77       mCCD_DATA <= iDATA;
78
79
if (mCCD_FVAL)
80       begin
81
if (mCCD_LVAL)
82         begin
83
if (X_Cont<1279)
84             X_Cont <= X_Cont + 1;
85
else
86           begin
87             X_Cont <= 0;
88             Y_Cont <= Y_Cont + 1;
89           end
90         end
91       end
92
else
93       begin
94         X_Cont    <=    0;
95         Y_Cont    <=    0;
96       end
97   end
98 end
99
100 always@(posedge iCLK or negedge iRST)
101 begin
102
if (!iRST)
103     Frame_Cont    <=    0;
104
else
105   begin
106
if (({Pre_FVAL,iFVAL}==2'b01) && mSTART)
107       Frame_Cont    <=    Frame_Cont+1;
108   end
109 end
110
111 endmodule   希望得到高人的指点   

错误有报告 你要是看不懂就不要看了
可以回家种地了

很多人都用C的思想写verilog,当然很多错误了。
verilog虽然语法像C,但根本就不是一回事。

32个错误在哪里呢?怎么不把报错贴出来?
而且,贴上来的代码很乱,很难阅读。哎。哪里有那么好的人,一行行的帮你检查代码啊。一点点提示都没有。

编译了一下 好像没有问题啊 ncvlog 编译无错误
我只是去掉了行号和空行

作者太强大了



   


谢谢您的提醒      这个是我编译时提示的错误    很希望得到大家的帮助



您好   我看着程序感觉也没有太大的问题   但是@   这种符号都提示是非法的  我不知道是为什么   软件我用的是 max+plus      如果您知道为什么   可以回答一下吗      最好您可以把仿真图传上来,具体的时序我也不知道对不对      非常感谢!



  是的    我也是从C51直接学的FPGA   真心难改啊

这是Verilog语言写的代码,而你保存成.vhd后缀名,软件就当是VHDL来编译,自然就报错了。
改成.v后缀再重新添加吧

楼上是正解。

学习了
非常好的讨论

对 别搞成vhdl的



    您好  真的是这样的   我网上看的教程是错的  谢谢您的指教 !谢谢楼上的各位。

嘿嘿   新手再次感谢大家的热心指导 !

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top