微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > 这样会有什么问题?

这样会有什么问题?

时间:10-02 整理:3721RD 点击:
如果我想对时钟脉冲的上升沿和下降沿都进行计数
always @(posedge clk)
begin
count1=count1+1;
end
always @(negedge clk)
begin
count2=count2+1;
end
always(count1 or count2)
count=count1+count2;
这样会出现什么问题呢,烦请大虾指点:)

这样会有什么问题?
1. 需要设置两个变量的初始态
2.两个变量的数据大小范围,溢出问题考虑.

这样会有什么问题?
如果设置初始态,并且考虑到溢出就可以了吗?我是想按照自己的想法设计一个奇数分频,占空比1:1。
如果这样可以的话,我就可以对上升下降沿计数,到3的时候反相输出就可以了,但是不知道为什么?仿真的时候会出现一个尖脉冲。

这样会有什么问题?
奇数分频不是这样做D。
以5分频为例,先用高频时钟的上升沿做一个高电平2个cycle、低电平3个cycle的周期信号,然后用下降沿打一拍,然后这两个信号或,输出,就是50%占空比的5分频信号了,偶数分频可以做到寄存器输出,而奇数分频要想达到50%占空比就要组合逻辑输出了,如果分频比很大,比如15分频,7/15或8/15的占空比其实已经很好了,不要强求,因为对时钟的占空比的要求通常都是40%~60%,或更严格一点,45%~55%。

这样会有什么问题?
感谢风再起,我看到这样一个三分频的程序,仿真波形很好,我只是想知道自己的想法错在哪里了,这样才好纠正,不然每次总是一想就偏,我还特喜欢钻牛角尖,真是头痛啊,麻烦您再给说几句,谢谢了:-)
module s1(clkin, clkout);
input clkin;
output clkout;
reg [1:0] step1, step2;
always @(posedge clkin)
begin
case (step1)
2'b00: step1<=2'b01;
2'b01: step1<=2'b10;
2'b10: step1<=2'b00;
default :step1<=2'b00;
endcase
end
always @(negedge clkin)
begin
case (step2)
2'b00: step2<=2'b01;
2'b01: step2<=2'b10;
2'b10: step2<=2'b00;
default :step2<=2'b00;
endcase
end
assign clkout=step1[1]|step2[1];
endmodule

这样会有什么问题?
这个三分频程序也不太规范,在一个module里一般是不允许同时用同一个clock的上升沿和下降沿的,很多语法检查工具都会报错的.综合也会出现问题的.

这样会有什么问题?
真的是不允许吗?但是没有发现这个问题啊,并且我看到很多例子都是这么写的?楼上的有没有什么根据啊,比如从哪里看到的,贴出来大家看看啊

这样会有什么问题?
DFT规范里一般不允许mix_edge,你的这个code里就有这个问题.

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top