guo407214944 发表于 2016-5-26 17:17:13

verilog中的疑惑

Fre我明明在counter函数中作为其q的输出,但下面图clkout2却没连接到counter中去,一直是低电平
是我哪里用得不对吗
程序如下:
module PLL(clk,rest,clkout_1,clkout_2);
input clk;
input rest;
output clkout_1,clkout_2;
wire clkout1M,clkout100k,clkout10k;
wire Fre;
PLL_SYS u1 (
        .areset(~rest),
        .inclk0(clk),
        .c0(clkout_1),
        .c1(clkout100k),
        .c2(clkout10k));
counter u2(
        .clock(clkout100k),
        .q(Fre));
assign clkout_2=Fre*2'd2;
endmodule

FPGA_WALKER 发表于 2016-5-26 18:21:07

用法不对,一个数乘以2等于左移一位,即最低位一直为零,你clkout_2取的就是最低位,所以一直为低了。

aammoo 发表于 2016-5-26 18:58:49

本帖最后由 aammoo 于 2016-5-26 19:00 编辑

你直接×2综合器傻眼了{:lol:}
从Fre里面拉一根线出来接上去就好了,×2是什么意思?

lusson 发表于 2016-5-26 20:04:47

1bit的数据你去存1bit * 2
结果是什么呢。。

你的本意是倍频??

GunGun 发表于 2016-5-26 20:16:50

*2后一直是0没有错?因为你只是1BIT。

7802848 发表于 2016-5-27 13:52:16

不可综合代码 讨论有意义吗

guo407214944 发表于 2016-5-30 08:56:39

lusson 发表于 2016-5-26 20:04
1bit的数据你去存1bit * 2
结果是什么呢。。



本意是倍频,我思维错了?

guo407214944 发表于 2016-5-30 08:58:13

FPGA_WALKER 发表于 2016-5-26 18:21
用法不对,一个数乘以2等于左移一位,即最低位一直为零,你clkout_2取的就是最低位,所以一直为低了。 ...

谢谢,分析很到位。

lusson 发表于 2016-5-30 09:18:01

guo407214944 发表于 2016-5-30 08:56
本意是倍频,我思维错了?

倍频直接乘2的话也真是服了你了。
一般倍频都是用PLL来做吧。

saddam911 发表于 2016-5-30 10:02:41

看样子楼主也是刚入门Verilog,我最近也在学FPGA,我在腾讯课堂上听至芯科技尤老师的课,感觉很不错,推荐你也去看看

guo407214944 发表于 2016-5-30 17:10:17

saddam911 发表于 2016-5-30 10:02
看样子楼主也是刚入门Verilog,我最近也在学FPGA,我在腾讯课堂上听至芯科技尤老师的课,感觉很不错,推荐 ...

我去看看,谢谢、

mrlee866 发表于 2016-7-18 22:33:59

初学FPGA数据位宽很容易搞错的 多总结 多看RTL

易尘 发表于 2016-7-19 09:33:45

倍频不可以直接*2的
页: [1]
查看完整版本: verilog中的疑惑