急啊!众位,这个程序我在Quartus II9.0上分析,老是出现错误,耽误各位一点时间,谢谢 20

moduleuart(IN,CLK_10MHz,Q,reset);inputCLK_10MHz,IN,reset;//输入信号:时钟信号CLK_10MHz,输入的串行信号... module uart(IN,CLK_10MHz,Q, reset);
input CLK_10MHz, IN, reset; //输入信号:时钟信号CLK_10MHz,输入的串行信号IN,复位信号reset
output [7:0] Q; //输出的并行信号
reg[7:0] P; //寄存器P,存放接收到的串行数据值
reg[3:0] i; //计数器i,用来记录接收到的数据位的数目
reg a; //寄存器a,用来判断是否开始接收数据
reg k; //寄存器k,用来判断模块是否完成数据接收
CNT cnt(CLK_10MHz, CLK_9600Hz, reset); //分频器进行分频
always@(posedge CLK_9600Hz or posedge reset)
begin
if(reset) //如果复位信号到来,则进行模块初始化
begin
i<=0;
k<=1;
a<=1;
end
if(IN==0&&a=1) //如果数据起始位到来,则准备接收数据
a<=0;
if(a==0) //如果接收控制寄存器a表明可以接收数据,则开始接收数据
begin
if(i<8&&k==1) //如果接收到的数据位小于8位,则继续进行接收
begin
P[i] <=IN;
i<=i+1; //接收一位数据,则计数器加1
end
else//如果接收到的数据位大于8位,则停止接收数据
k<=0;
end
end
assign Q=P;
endmodule

Error (10200): Verilog HDL Conditional Statement error at uart.v(17): cannot match operand(s) in the condition to the corresponding edges in the enclosing event control of the always construct
Error (10200): Verilog HDL Conditional Statement error at uart.v(21): cannot match operand(s) in the condition to the corresponding edges in the enclosing event control of the always construct
Error: Can't elaborate top-level user hierarchy
展开
 我来答
天然浮夸
2013-05-02 · TA获得超过304个赞
知道小有建树答主
回答量:260
采纳率:100%
帮助的人:239万
展开全部
if(IN==0&&a=1)
这一句要改成a==1

另外这句话if(i<8&&k==1)
你分开写吧
if(i<8)
begin
if((k==1)

你试试看,希望对你有帮助
追问
我再好好看看,谢谢你,和我想的差不多,但还是有一点点问题
追答
你注意每个if语句后面有没有加begin和end

格式要对齐的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式