急急急!!!请问这个程序怎么该
module q1(a,out);input a;
output out;
reg clk;
for(clk=0;clk<1000;clk=clk+1)
out=(clk==100)?~a:a;
endmodule 请问您是要实现什么功能? 回复 1# 99aqaq
输出一个方波 回复 3# 99aqaq
这个程序怎么改才能不出错呢 你直接用计数器不可以吗?貌似很少用for语句吧 你把for语句的那部分改了估计就可以了 module q1(a,out);
input a;
output out;
reg clk;
always@(posedge a)
if(clk<1000)
clk<=0;
else
clk<=clk+1;
assign out=(clk==100)?~a:a;
endmodule module q1(clk,a,out);
input clk;
input a;
output out;
wire out;
reg cnt;
assign out=(cnt==100)?~a:a;
always@(posedge clk)
if(cnt<1000)
cnt<=0;
else
cnt<=cnt+1;
endmodule
这个是按照你给的程序改改试试 但是感觉clk没必要定义那么大吧?
感觉你那里少了一个时钟输入。我也是新手 他是没按套路出牌,他的程序中a是时钟,clk是计数寄存器 module q1(a,out);
input a;
output out;
reg clk;
for(clk=0;clk<1000;clk=clk+1)
out=(clk==100)?~a:a;//当clk为100时候a取反 否则为a 这条语句执仿真时候应该out一直为a,原因是硬件中for语句执行速度超短,这条语句out=(clk==100)?~a:a;和out=a没什么区别。不像c语言中for执行有指令周期,out=~a还能维持一个指令周期。
endmodule
页:
[1]
2