Verilog编程中自己出过的错误

1.Error (10137): Verilog HDL Procedural Assignment error at freq_test.v(36): object "dataoutf" on left-hand side of assignment must have a variable data type

原因:数据类型定义错误 或者 赋值类型错误

解决方法: 在always 过程块中被赋值的变量必须是 reg (寄存器型),用 assign 连续赋值的对象 必须定义成 wire(线型);

另:assign应与always并行。


2.Error (10200): Verilog HDL Conditional Statement error at seg.v(42): cannot match operand(s) in the condition to the corresponding edges in the enclosing event control of the always construct

always @(posedge CLK or posedge CLR)
	begin
		if(CLR)
			begin
			cnt<=16'b0;
			BIT_SEL<=2'b0;
			end
		else
			cnt<= cnt + 1'b1;
		if (cnt==16'd1) //延时1ms
			begin
				BIT_SEL <= BIT_SEL + 1'b1; //换一位数码管显示
				cnt <=16'b0;
			end
	end
我程序段是这样写的,我把
                if (cnt==16'd1) //延时1ms
			begin   
                        end

这三句删了就没问题了。不清楚原因。

网上搜到的相关解答:https://zhidao.baidu.com/question/223033559.html。我好像不是这个原因。


3.Error (10170): Verilog HDL syntax error at wave.v(20) near text "clk_sep";  expecting "<=", or "="

模块例化调用不能出现在always语句内,因例化只实现一次,而always满足敏感表即进行。例化应与always并行。


4.Error (10663): Verilog HDL Port Connection error at wave.v(31): output or inout port "dataouthc" must be connected to a structural net expression

模块例化时数据类型的错误。

输入端口:

从模块内部来讲,输入端口必须为线网型(不进行类型声明则默认为wire);从模块外部来看,输入端口可以连接到线网或reg型的变量

输出端口:

从模块内部来讲,输出端口可以是线网或reg型;从模块外部来看,输出端口必须连接到线网型的变量

为什么要这样定义,则需要理解fpga的硬件结构。




评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值