关于verilog的编程问题

2014anewme 2014-03-27 07:17:53
module fenpin2( change, clock,reset);
output change;
input clock;
input reset;
reg change;
always@(posedge clock or reset)
if(change!=0)
assign change=0;
always@(posedge clock)
change=1;
endmodule


请大神帮忙看看这个出了什么问题!
...全文
251 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
jiayou0909 2014-05-29
  • 打赏
  • 举报
回复
你写的就是二分频,只不过其中的语句 if(change!=0) change<=1'b0; else change<=1'b1; 可以简化成: change <= ~change; 以下是二分频的完整代码: module fenpin2( change, clock, reset); output change; input clock; input reset; reg change; always@(posedge clock or posedge reset) if(reset) change <= 1'b0; else change <= ~change; endmodule
2014anewme 2014-05-03
  • 打赏
  • 举报
回复
不好意思才看到,前几天软件过期了,现在重装以后试了一下,确实是二分频.
__cc__ 2014-04-29
  • 打赏
  • 举报
回复
上面那个明明就是二分频嘛,怎么能仿真出四分频,把仿真波形图贴出来看看
2014anewme 2014-04-16
  • 打赏
  • 举报
回复
您好,这个程序我想实现的其实是二分频。我采用了你always里面的敏感信号写法,编译通过了,但是仿真之后出来的是个四分频。。。。。。为什么呢?? module div2(change,clock,reset); output change; input clock; input reset; reg change; always@(posedge clock or posedge reset ) begin if(reset) change<=1'b0; else if(change!=0) change<=1'b0; else change<=1'b1; end endmodule
fly 100% 2014-03-27
  • 打赏
  • 举报
回复
change 产生竞争了吧 明显两个这个clk的激励造成了同样的change改变 fpga是电路 不能用单纯的编程语言来理解 两个赋值同时过去在电路上是又先后的 这样就造成取不准的状态 也就是冒险 可以看看竞争冒险的解释
jiayou0909 2014-03-27
  • 打赏
  • 举报
回复
module fenpin2( change, clock, reset); output change; input clock; input reset; reg change; always@(posedge clock or posedge reset) if(reset) change <= 1'b0; else change <= 1'b1; endmodule

21,499

社区成员

发帖
与我相关
我的任务
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
  • 汇编语言
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧