集成电路技术分享

 找回密码
 我要注册

QQ登录

只需一步,快速开始

搜索
查看: 4599|回复: 11

急急急!!!请问这个程序怎么该

[复制链接]
99aqaq 发表于 2011-9-22 12:42:02 | 显示全部楼层 |阅读模式
module q1(a,out);
input a;
output out;

reg[26:0] clk;
for(clk=0;clk<1000;clk=clk+1)








out=(clk==100)?~a:a;

endmodule
pengdan0905 发表于 2011-9-22 13:33:43 | 显示全部楼层
请问您是要实现什么功能?
 楼主| 99aqaq 发表于 2011-9-22 13:41:24 | 显示全部楼层
回复 1# 99aqaq


    输出一个方波
 楼主| 99aqaq 发表于 2011-9-22 13:42:18 | 显示全部楼层
回复 3# 99aqaq


    这个程序怎么改才能不出错呢
pengdan0905 发表于 2011-9-22 15:09:51 | 显示全部楼层
你直接用计数器不可以吗?貌似很少用for语句吧
pengdan0905 发表于 2011-9-22 15:10:40 | 显示全部楼层
你把for语句的那部分改了估计就可以了
endmodule 发表于 2011-9-22 21:43:05 | 显示全部楼层
module q1(a,out);
input a;
output out;
reg[26:0] clk;
always@(posedge a)
if(clk<1000)
   clk<=0;
else
   clk<=clk+1;

assign out=(clk==100)?~a:a;
endmodule
冰下月影 该用户已被删除
冰下月影 发表于 2011-9-23 07:39:38 | 显示全部楼层
module q1(clk,a,out);
input clk;
input a;
output out;
wire out;
reg[26:0] cnt;

assign out=(cnt==100)?~a:a;

always@(posedge clk)
if(cnt<1000)
   cnt<=0;
else
   cnt<=cnt+1;
endmodule
这个是按照你给的程序改改试试 但是感觉clk没必要定义那么大吧?
感觉你那里少了一个时钟输入。我也是新手
endmodule 发表于 2011-9-23 22:22:56 | 显示全部楼层
他是没按套路出牌,他的程序中a是时钟,clk是计数寄存器
哦十全_至芯学员 发表于 2011-9-23 22:35:33 | 显示全部楼层
module q1(a,out);
input a;
output out;
reg[26:0] 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 下一条

QQ|小黑屋|手机版|Archiver|fpga论坛|fpga设计论坛 ( 京ICP备20003123号-1 )

GMT+8, 2025-6-24 15:42 , Processed in 0.069514 second(s), 20 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表