guo407214944 发表于 2014-5-16 16:48:00

该verilog为何不能10分频呢?太怪了

硬件是EP2C8Q,做一个简单分频器,2,4,6,8,分频都可以,可10分频时,仿真或硬件都不对。程序如下,目的:temp计数4次后,clk时钟被10分频。(是否纠结,为何不能10分频,表现为2分频,仿真时,发现temp会计数到4‘b1111,之后就溢出,outclk0一直表现为2分频现象)

module jishu(clk,rest,outclk0);
input clk;
input rest;
output reg outclk0;
reg temp;
always@(posedge clk or negedge rest)
begin
if(!rest)
        begin
        temp<=4'b0000;
        outclk0<=1'b0;
        end
else if(temp==2'd4)
        begin
        outclk0<=~outclk0;
        temp<=4'b0000;
        end
else
        temp<=temp+1'b1;
        //outclk0<=outclk0;
end
endmodule

hell-prototypes 发表于 2014-5-16 17:27:55

else if(temp==2'd4) 是个什么意思?

一匹狼 发表于 2014-5-16 17:39:52

可以实现任意分配,小数分频都能做到,按**说法----回去再研究研究!

浮华一生 发表于 2014-5-16 17:47:21

2'd4?3'd4或者4'd4按理说4'd4最好。 2个bit 最多到3 到不了4

超群天晴 发表于 2014-5-16 20:04:36

楼主啊,你改成4'd4试试!肯定没问题

guo407214944 发表于 2014-5-19 09:37:39

hell-prototypes 发表于 2014-5-16 17:27
else if(temp==2'd4) 是个什么意思?

语法错误了我,2位最多3

guo407214944 发表于 2014-5-19 09:38:09

浮华一生 发表于 2014-5-16 17:47
2'd4?3'd4或者4'd4按理说4'd4最好。 2个bit 最多到3 到不了4

是的,语法弄错了,谢谢。

guo407214944 发表于 2014-5-19 09:38:33

超群天晴 发表于 2014-5-16 20:04
楼主啊,你改成4'd4试试!肯定没问题

已经试过了,解决了,谢谢

guo407214944 发表于 2014-5-27 15:26:38

超群天晴 发表于 2014-5-16 20:04
楼主啊,你改成4'd4试试!肯定没问题

已经改正,多谢

fx568000 发表于 2015-3-20 14:50:47

是个小问题,楼上解决了
页: [1]
查看完整版本: 该verilog为何不能10分频呢?太怪了