专家
公告
财富商城
电子网
旗下网站
首页
问题库
专栏
标签库
话题
专家
NEW
门户
发布
提问题
发文章
FPGA
关于环形振荡器的问题
2020-01-27 13:44
发布
×
打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮
站内问答
/
FPGA
5173
5
5
用Spartaniii可以实现环形振荡器吗? XC3S400
我拷贝了网上的一个例子,下载进去,没啥反应。
这种自震荡的东西能仿真吗?
在fpga里实现环形振荡器,有什么起振条件吗?还有,看例子里使用LUT,延迟是固定的吗?不明白为啥不直接用与门或非门实现?!
友情提示:
此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
4条回答
dan_xb
1楼-- · 2020-01-27 17:25
精彩回答 2 元偷偷看……
加载中...
dan_xb
2楼-- · 2020-01-27 23:09
本帖最后由 dan_xb 于 2011-6-17 14:00 编辑
给你一个可实现的例子:
这个产生大约1.5MHz的时钟(Spartan-3),随温度变化
module ring_osc(osc_out); //about 1.5MHz out Clock
output osc_out;
(* s = "TRUE" *) wire delay1,delay2,delay3,delay4;
(* s = "TRUE" *) wire delay5,delay6,delay7,delay8;
(* s = "TRUE" *) wire delay9,delay10,delay11,delay12;
(* s = "TRUE" *) wire delay13,delay14,delay15,delay16;
(* s = "TRUE" *) wire invert;
wire clk_div2,clk_div4,clk_div8,clk_div16,clk_div32;
(* LOC = "SLICE_X0Y0" *) LUT1 #(.INIT(2'b10)) delay1_lut (.O(delay1) ,.I0(invert) );
(* LOC = "SLICE_X0Y1" *) LUT1 #(.INIT(2'b10)) delay2_lut (.O(delay2) ,.I0(delay1) );
(* LOC = "SLICE_X0Y2" *) LUT1 #(.INIT(2'b10)) delay3_lut (.O(delay3) ,.I0(delay2) );
(* LOC = "SLICE_X0Y3" *) LUT1 #(.INIT(2'b10)) delay4_lut (.O(delay4) ,.I0(delay3) );
(* LOC = "SLICE_X0Y4" *) LUT1 #(.INIT(2'b10)) delay5_lut (.O(delay5) ,.I0(delay4) );
(* LOC = "SLICE_X0Y5" *) LUT1 #(.INIT(2'b10)) delay6_lut (.O(delay6) ,.I0(delay5) );
(* LOC = "SLICE_X0Y6" *) LUT1 #(.INIT(2'b10)) delay7_lut (.O(delay7) ,.I0(delay6) );
(* LOC = "SLICE_X0Y7" *) LUT1 #(.INIT(2'b10)) delay8_lut (.O(delay8) ,.I0(delay7) );
(* LOC = "SLICE_X0Y8" *) LUT1 #(.INIT(2'b10)) delay9_lut (.O(delay9) ,.I0(delay8) );
(* LOC = "SLICE_X0Y9" *) LUT1 #(.INIT(2'b10)) delay10_lut (.O(delay10),.I0(delay9) );
(* LOC = "SLICE_X0Y10" *) LUT1 #(.INIT(2'b10)) delay11_lut (.O(delay11),.I0(delay10));
(* LOC = "SLICE_X0Y11" *) LUT1 #(.INIT(2'b10)) delay12_lut (.O(delay12),.I0(delay11));
(* LOC = "SLICE_X0Y12" *) LUT1 #(.INIT(2'b10)) delay13_lut (.O(delay13),.I0(delay12));
(* LOC = "SLICE_X0Y13" *) LUT1 #(.INIT(2'b10)) delay14_lut (.O(delay14),.I0(delay13));
(* LOC = "SLICE_X0Y14" *) LUT1 #(.INIT(2'b10)) delay15_lut (.O(delay15),.I0(delay14));
(* LOC = "SLICE_X0Y15" *) LUT1 #(.INIT(2'b10)) delay16_lut (.O(delay16),.I0(delay15));
(* LOC = "SLICE_X0Y16" *) LUT1 #(.INIT(2'b01)) invert_lut (.O(invert) ,.I0(delay16));
FDCPE #(.INIT(1'b0)) toggle1_flop (.Q(clk_div2), .C(invert), .CE(1'b1),.CLR(1'b0),.D(~clk_div2), .PRE(1'b0)); //24MHz
FDCPE #(.INIT(1'b0)) toggle2_flop (.Q(clk_div4), .C(clk_div2), .CE(1'b1),.CLR(1'b0),.D(~clk_div4), .PRE(1'b0)); //12MHz
FDCPE #(.INIT(1'b0)) toggle3_flop (.Q(clk_div8), .C(clk_div4), .CE(1'b1),.CLR(1'b0),.D(~clk_div8), .PRE(1'b0)); //6MHz
FDCPE #(.INIT(1'b0)) toggle4_flop (.Q(clk_div16),.C(clk_div8), .CE(1'b1),.CLR(1'b0),.D(~clk_div16),.PRE(1'b0)); //3MHz
FDCPE #(.INIT(1'b0)) toggle5_flop (.Q(clk_div32),.C(clk_div16),.CE(1'b1),.CLR(1'b0),.D(~clk_div32),.PRE(1'b0)); //1.5MHz
BUFG BUFG1 (.O(osc_out),.I(clk_div32));
endmodule
加载中...
午后苦丁茶
3楼-- · 2020-01-28 03:13
:L
加载中...
bairan168
4楼-- · 2020-01-28 09:09
咋没结果呢?
加载中...
一周热门
更多
>
相关问题
如何用FPGA驱动LCD屏?
5 个回答
请教一下各位专家如何用FPGA做eDP接口?
6 个回答
FPGA CH7301c DVI(显示器数字接口)没有数字输出
7 个回答
100颗FPGA的板子,开开眼界
6 个回答
求教自制最小系统版
10 个回答
基于FPGA的X射线安检设备控制器
2 个回答
CycolneIVGX核心板,可扩展PCIE,光纤接口,大家来鉴赏一下
6 个回答
关于VHDL或Verllog程序稳定性的问题
11 个回答
相关文章
嵌入式领域,FPGA的串口通信接口设计,VHDL编程,altera平台
0个评论
Xilinx的FPGA开发工具——ISE开发流程
0个评论
基于FPGA的详细设计流程
0个评论
干货分享,FPGA硬件系统的设计技巧
0个评论
一种通过FPGA对AD9558时钟管理芯片进行配置的方法
0个评论
×
关闭
采纳回答
向帮助了您的网友说句感谢的话吧!
非常感谢!
确 认
×
关闭
编辑标签
最多设置5个标签!
FPGA
保存
关闭
×
关闭
举报内容
检举类型
检举内容
检举用户
检举原因
广告推广
恶意灌水
回答内容与提问无关
抄袭答案
其他
检举说明(必填)
提交
关闭
×
关闭
您已邀请
15
人回答
查看邀请
擅长该话题的人
回答过该话题的人
我关注的人
给你一个可实现的例子:
这个产生大约1.5MHz的时钟(Spartan-3),随温度变化
module ring_osc(osc_out); //about 1.5MHz out Clock
output osc_out;
(* s = "TRUE" *) wire delay1,delay2,delay3,delay4;
(* s = "TRUE" *) wire delay5,delay6,delay7,delay8;
(* s = "TRUE" *) wire delay9,delay10,delay11,delay12;
(* s = "TRUE" *) wire delay13,delay14,delay15,delay16;
(* s = "TRUE" *) wire invert;
wire clk_div2,clk_div4,clk_div8,clk_div16,clk_div32;
(* LOC = "SLICE_X0Y0" *) LUT1 #(.INIT(2'b10)) delay1_lut (.O(delay1) ,.I0(invert) );
(* LOC = "SLICE_X0Y1" *) LUT1 #(.INIT(2'b10)) delay2_lut (.O(delay2) ,.I0(delay1) );
(* LOC = "SLICE_X0Y2" *) LUT1 #(.INIT(2'b10)) delay3_lut (.O(delay3) ,.I0(delay2) );
(* LOC = "SLICE_X0Y3" *) LUT1 #(.INIT(2'b10)) delay4_lut (.O(delay4) ,.I0(delay3) );
(* LOC = "SLICE_X0Y4" *) LUT1 #(.INIT(2'b10)) delay5_lut (.O(delay5) ,.I0(delay4) );
(* LOC = "SLICE_X0Y5" *) LUT1 #(.INIT(2'b10)) delay6_lut (.O(delay6) ,.I0(delay5) );
(* LOC = "SLICE_X0Y6" *) LUT1 #(.INIT(2'b10)) delay7_lut (.O(delay7) ,.I0(delay6) );
(* LOC = "SLICE_X0Y7" *) LUT1 #(.INIT(2'b10)) delay8_lut (.O(delay8) ,.I0(delay7) );
(* LOC = "SLICE_X0Y8" *) LUT1 #(.INIT(2'b10)) delay9_lut (.O(delay9) ,.I0(delay8) );
(* LOC = "SLICE_X0Y9" *) LUT1 #(.INIT(2'b10)) delay10_lut (.O(delay10),.I0(delay9) );
(* LOC = "SLICE_X0Y10" *) LUT1 #(.INIT(2'b10)) delay11_lut (.O(delay11),.I0(delay10));
(* LOC = "SLICE_X0Y11" *) LUT1 #(.INIT(2'b10)) delay12_lut (.O(delay12),.I0(delay11));
(* LOC = "SLICE_X0Y12" *) LUT1 #(.INIT(2'b10)) delay13_lut (.O(delay13),.I0(delay12));
(* LOC = "SLICE_X0Y13" *) LUT1 #(.INIT(2'b10)) delay14_lut (.O(delay14),.I0(delay13));
(* LOC = "SLICE_X0Y14" *) LUT1 #(.INIT(2'b10)) delay15_lut (.O(delay15),.I0(delay14));
(* LOC = "SLICE_X0Y15" *) LUT1 #(.INIT(2'b10)) delay16_lut (.O(delay16),.I0(delay15));
(* LOC = "SLICE_X0Y16" *) LUT1 #(.INIT(2'b01)) invert_lut (.O(invert) ,.I0(delay16));
FDCPE #(.INIT(1'b0)) toggle1_flop (.Q(clk_div2), .C(invert), .CE(1'b1),.CLR(1'b0),.D(~clk_div2), .PRE(1'b0)); //24MHz
FDCPE #(.INIT(1'b0)) toggle2_flop (.Q(clk_div4), .C(clk_div2), .CE(1'b1),.CLR(1'b0),.D(~clk_div4), .PRE(1'b0)); //12MHz
FDCPE #(.INIT(1'b0)) toggle3_flop (.Q(clk_div8), .C(clk_div4), .CE(1'b1),.CLR(1'b0),.D(~clk_div8), .PRE(1'b0)); //6MHz
FDCPE #(.INIT(1'b0)) toggle4_flop (.Q(clk_div16),.C(clk_div8), .CE(1'b1),.CLR(1'b0),.D(~clk_div16),.PRE(1'b0)); //3MHz
FDCPE #(.INIT(1'b0)) toggle5_flop (.Q(clk_div32),.C(clk_div16),.CE(1'b1),.CLR(1'b0),.D(~clk_div32),.PRE(1'b0)); //1.5MHz
BUFG BUFG1 (.O(osc_out),.I(clk_div32));
endmodule
一周热门 更多>