注册 登录
电子工程世界-论坛 返回首页 EEWORLD首页 频道 EE大学堂 下载中心 Datasheet 专题
飞鸿浩劫的个人空间 https://home.eeworld.com.cn/space-uid-589053.html [收藏] [复制] [分享] [RSS]
日志

二分频器

已有 1070 次阅读2015-9-3 15:07 |个人分类:verilog数字系统设计教程| 分频器

/*带复位的二分频器RTL结构为一个二选一多路选择器和一个D触发器,D触发器输出端接到选择器一端形成反馈*/

module halfclk(rst,clkin,clkout);
input clkin,rst;
output clkout;

reg clkout;
always@(posedge clkin)
begin
if(!rst) clkout=0;
else clkout=~clkout;
end
endmodule
/*不带复位的二分频,以D触发器的时钟端为输入,将D触发器的输入和输出连接形成反馈,在D触发器输出端可形成clkin的二分频时钟
module halfclk(clkin,clkout);
input clkin;
output clkout;

reg clkout;
always@(posedge clkin)
clkout=~clkout;
endmodule
*/
//Testbench
`timescale 1 ns/ 100 ps
`define clkcycle 50
module halfclk_vlg_tst();

reg clkin;
reg rst;
                                              
wire clkout;
                          
always #`clkcycle clkin=~clkin;
initial                                                
begin                                                  
clkin=0;
rst=1;
#10 rst=0;
#110 rst=1;
#100000 $stop;                                            
end                    

halfclk i1 (   
.clkin(clkin),
.clkout(clkout),
.rst(rst)
);
endmodule

时序电路少不了时钟,always语句很常见,例如always@(posedge clkin)和always@(negedge clkin),always块中的被赋值的信号必须是reg型,reg型数据在未赋值时是不确定的有必要用利用reset信号进行寄存器复位从而赋初值。
左侧是不带复位的二分频器,右侧是带复位的二分频器,带复位的电路比原先多了一个二选一选择器MUX

全部作者的其他最新日志
评论 (0 个评论)

facelist doodle 涂鸦板

您需要登录后才可以评论 登录 | 注册

热门文章