248分频电路的实现方法.docx

上传人:小飞机 文档编号:3145818 上传时间:2023-03-11 格式:DOCX 页数:3 大小:37.13KB
返回 下载 相关 举报
248分频电路的实现方法.docx_第1页
第1页 / 共3页
248分频电路的实现方法.docx_第2页
第2页 / 共3页
248分频电路的实现方法.docx_第3页
第3页 / 共3页
亲,该文档总共3页,全部预览完了,如果喜欢就下载吧!
资源描述

《248分频电路的实现方法.docx》由会员分享,可在线阅读,更多相关《248分频电路的实现方法.docx(3页珍藏版)》请在三一办公上搜索。

1、248分频电路的实现方法2N分频电路的实现方法 1 目的 分频系数较大的2N分频电路需要采用标准计数器来实现,此处的方法是直接将计数器的相应位赋给分频电路的输出信号即可实现分频功能。采用这个方法的好处是:一是不需要定义中间信号,设计简单,节约资源;二是可以避免毛刺现象的发生,从而避免了逻辑错误产生的可能性。 下面采用VHDL和Verilog两种语言实现的2分频、4分频和8分频。 2 VHDL实现 LIBRARY IEEE; USE IEEE.std_logic_1164.ALL; USE IEEE.std_logic_arith.ALL; USE IEEE.std_logic_unsigned

2、.ALL; ENTITY clk_8div_2 IS PORT(CLK:IN std_logic; CLK_DIV2:OUT std_logic; CLK_DIV4:OUT std_logic; CLK_DIV8:OUT std_logic); END clk_8div_2; ARCHITECTURE rtl OF clk_8div_2 IS SIGNAL counter:std_logic_vector(2 DOWNTO 0); BEGIN PROCESS(CLK) BEGIN IF(CLKevent AND CLK=1) THEN IF (counter = “111”) THEN cou

3、nt0); ELSE counter=counter +1; END IF; END IF; END PROCESS; CLK_DIV2=NOT counter(0); CLK_DIV4=NOT counter(1); CLK_DIV8=NOT counter(2); END rtl; 3 Verilog实现 3.1 module clk_8div_2( input CLK, output CLK_DIV2, output CLK_DIV4, output CLK_DIV8, input RESET ); reg 2:0 clk_counter; always (posedge CLK or

4、posedge RESET) begin if (RESET) begin clk_counter = 0; end else begin end if (clk_counter = 3d7) begin clk_counter = 0; end else clk_counter = clk_counter + 1; end assign CLK_DIV2 = clk_counter0; assign CLK_DIV4 = clk_counter1; assign CLK_DIV8 = clk_counter2; endmodule 3.2 测试文件 module test_clk; / In

5、puts reg CLK; reg RESET; / Outputs wire CLK_DIV2; wire CLK_DIV4; wire CLK_DIV8; / Instantiate the Unit Under Test (UUT) clk_8div_2 uut ( .CLK(CLK), ); .CLK_DIV2(CLK_DIV2), .CLK_DIV4(CLK_DIV4), .CLK_DIV8(CLK_DIV8), .RESET(RESET) initial begin / Initialize Inputs CLK = 0; RESET = 1; / Wait 100 ns for global reset to finish #100; RESET = 0; end always #10 CLK = CLK; endmodule 3.3 仿真波形

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号