CHANG 发表于 2010-6-28 00:35:00

问题仍在继续——一个初学者请教:寄存器赋值问题?

本帖最后由 fpgaw 于 2010-7-6 06:57 编辑

变量,if语句上限不支持变量~~~~~~~”
那么下限能否支持变量呢?如果不能,在需要在运行过程中改变if语句判断条件时(注1处),该怎么实现呢。我想FPGA/CPLD肯定有办法实现的。
module pulse(clkin,wr0,clkout,en,data);

inputclkin,wr0;
input data ;
inputen;
output clkout;
regclkout;
reg count;
reg N;

initial begin
count = 0;
N = 5;
end

always @(negedge wr0)
N = data;

always @(posedge clkin)
if(en==1)
begin
   if(count<N)    /*注1 */
   count = count+1;
   else
   count = 0;
end
assign clkout = connt;
endmodule

HDL 发表于 2010-6-28 02:34:00

首先请你说说你程序的功能&nbsp;&nbsp;<br>
<br>
你程序编译过了吗&nbsp;&nbsp;我是没过 主要是<br>
<br>
assign clkout = count;中的count为reg&nbsp; &nbsp;不能用在assign语句中 <br>
<br>
对不对 期待高手的 到来

ups 发表于 2010-6-28 02:56:05

把这句<br>
reg&nbsp; &nbsp;&nbsp; &nbsp;clkout;<br>
删掉就可以编译通过了。

FFT 发表于 2010-6-28 04:38:38

reg必需要时钟信号<br>
可以将count类型改为wire或缺损<br>
时序电路最好用非阻塞赋值符号<br>
initial不要出现在模块中,一般不能综合;可以在测试模块中,可以用复位信号初始化
页: [1]
查看完整版本: 问题仍在继续——一个初学者请教:寄存器赋值问题?