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
用法不对,一个数乘以2等于左移一位,即最低位一直为零,你clkout_2取的就是最低位,所以一直为低了。 本帖最后由 aammoo 于 2016-5-26 19:00 编辑
你直接×2综合器傻眼了{:lol:}
从Fre里面拉一根线出来接上去就好了,×2是什么意思? 1bit的数据你去存1bit * 2
结果是什么呢。。
你的本意是倍频?? *2后一直是0没有错?因为你只是1BIT。 不可综合代码 讨论有意义吗 lusson 发表于 2016-5-26 20:04
1bit的数据你去存1bit * 2
结果是什么呢。。
本意是倍频,我思维错了? FPGA_WALKER 发表于 2016-5-26 18:21
用法不对,一个数乘以2等于左移一位,即最低位一直为零,你clkout_2取的就是最低位,所以一直为低了。 ...
谢谢,分析很到位。 guo407214944 发表于 2016-5-30 08:56
本意是倍频,我思维错了?
倍频直接乘2的话也真是服了你了。
一般倍频都是用PLL来做吧。 看样子楼主也是刚入门Verilog,我最近也在学FPGA,我在腾讯课堂上听至芯科技尤老师的课,感觉很不错,推荐你也去看看 saddam911 发表于 2016-5-30 10:02
看样子楼主也是刚入门Verilog,我最近也在学FPGA,我在腾讯课堂上听至芯科技尤老师的课,感觉很不错,推荐 ...
我去看看,谢谢、 初学FPGA数据位宽很容易搞错的 多总结 多看RTL 倍频不可以直接*2的
页:
[1]