《EDA技术与SOPC基础》三、实现过程分频器模块计数器模块动态扫描显示模块顶层设计(原理图或文本)明德博学求实创新
明德 博学 求实 创新 《EDA技术与SOPC基础》 三、实现过程 ◆计数器模块 ◆动态扫描显示模块 ◆顶层设计(原理图或文本) ◆分频器模块
《EDA技术与SOPC基础》1.分频器模块根据系统功能需求,此分频器模块需要实现两个信号分频1HZ的标准秒信号提供基准时钟,另一个是用输出,一个是于数码管动态显示的扫描信号,频率为1KHZ。明德博学求实创新
明德 博学 求实 创新 《EDA技术与SOPC基础》 1.分频器模块 根据系统功能需求,此分频器模块需要实现两个信号分频 输出,一个是1Hz的标准秒信号提供基准时钟,另一个是用 于数码管动态显示的扫描信号,频率为1KHz。 R = 50MHz 1Hz
《EDA技术与SOPC基础》【例3-14】分频器设计modulefenpin(CLK50M,CLK1Hz,CLK1KHz);input CLK_50M;//输入时钟信号50MHzoutput CLK_1Hz;//分频输出信号1Hzoutput CLK_1KHz;clk1,clk1kreg//中间变量clk1[24:0] counter1;reg[14:0] counter2;regalways@(posedgeCLK_50M)输入时钟上升沿beginif (counter1==25000000)/如果计数器等于分频比一半begincounter1<=0;//分频计数器清0clk1<= ~ clk1;//clk1hz进行翻转endelsecounter1<=counter1+1//计数器累加end博学求实明德创新
明德 博学 求实 创新 《EDA技术与SOPC基础》 •【例3-14】分频器设计 • module fenpin(CLK_50M,CLK_1Hz,CLK_1KHz); • input CLK_50M; //输入时钟信号50MHz • output CLK_1Hz; //分频输出信号1Hz • output CLK_1KHz; • reg clk1,clk1k; //中间变量clk1 • reg [24:0] counter1; • reg [14:0] counter2; • always @ (posedge CLK_50M ) // 输入时钟上升沿 • begin • if (counter1==25000000) //如果计数器等于分频比一半 • begin • counter1<=0; //分频计数器清0 • clk1<= ~ clk1; //clk1hz进行翻转 • end • else counter1<=counter1+1; //计数器累加 • end
《EDA技术与SOPC基础》always@(posedgeCLK50M)//输入时钟上升沿beginif(counter225000)//如果计数器等于分频比一半begincounter2<=0//分频计数器清0clklk<=~clklk//clk1khz进行翻转endelsecounter2<-counter2+1//计数器累加endassign CLK_1Hz=clkl;//将中间结果向端口输出assign CLK 1KHz-clklkendmodule12.8us15.36us17.92us20.48usNameoutCLK_1HzOUCLK1KHzCLK_50M明德博学求实创新
明德 博学 求实 创新 《EDA技术与SOPC基础》 always @ (posedge CLK_50M ) // 输入时钟上升沿 begin if (counter2==25000) //如果计数器等于分频比一半 begin counter2<=0; //分频计数器清0 clk1k<= ~ clk1k; //clk1khz进行翻转 end else counter2<=counter2+1; //计数器累加 end assign CLK_1Hz=clk1; //将中间结果向端口输出 assign CLK_1KHz=clk1k; endmodule