一种外设控制器和外设控制电路
技术领域
本发明属于集成电路领域,尤其涉及一种外设控制器和外设控制电路。
背景技术
在ASIC(专用集成电路)操作外设的电路中,常用方式为ASIC主控制器控制外设控制器,外设控制器控制外设,如图1所示,主控制器1提供主时钟信号CLK和其它控制信号给外设控制器2,外设控制器2需要返回给主控制器1若干信号,统称为SIG_BACK,外设控制器2在主时钟信号CLK有效沿时刻更新SIG_BACK,以响应主控制器1控制操作。外设控制器2也需要将主时钟信号CLK分频,产生分频后时钟信号CLK_OUT,并向外设3提供时钟信号CLK_OUT(亦可称CLK_OUT为外设使用的时钟信号或外设时钟信号)和除时钟信号外的其它信号(如控制信号、地址信号、数据信号等),提供给外设3的除时钟信号外其它信号统称为CHS。外设3在时钟信号CLK_OUT有效沿对其它信号CHS进行采样,从而判断需要进行的操作。为了保证外设3在时钟信号CLK_OUT有效沿正确采样到其它信号CHS,需要保证其它信号CHS相对于时钟信号CLK_OUT有效沿有足够的建立时间和保持时间。建立时间含义为在时钟有效沿前,信号需要保持稳定不变的时间。保持时间含义为在时钟有效沿后,信号需要保持稳定不变的时间。现有技术计算的方法如下:
对于时钟信号CLK_OUT,外设控制器2采用与外设3相反的有效沿(若时钟信号CLK_OUT上升沿对外设3有效,则时钟信号CLK_OUT下降沿对外设控制器2有效;反之,若时钟信号CLK_OUT下降沿对外设3有效,则时钟信号CLK_OUT上升沿对外设控制器2有效),外设控制器2在时钟信号CLK_OUT有效沿更新其它信号CHS值。这样在外设3端,相对于时钟信号CLK_OUT时钟对于外设3的有效沿,其它信号CHS的建立和保持时间都近似为半个时钟信号CLK_OUT时钟周期,建立和保持时间都足够长。如图2所示,是时钟信号CLK_OUT上升沿对外设有效情况下的示例。
但是采用这种方法,外设控制器2有主时钟信号CLK和时钟信号CLK_OUT两个时钟,相对于单时钟电路,外设控制器2因为包含两个时钟,所以其电路复杂,并且实现难度大。
中国专利文献CN101446807A是本发明最接近的现有技术。
发明内容
本发明实施例的目的在于提供一种外设控制器,旨在解决现在的外设控制器存在电路复杂,并且实现难度大的问题。
本发明实施例是这样实现的,一种外设控制器,所述外设控制器用于接收集成电路的主控制器发送的主时钟信号、复位信号、外设控制器使能信号、外设时钟有效沿选择信号、分频倍数控制信号和若干逻辑信号,所述外设控制器通过计算,使得在只采用一个时钟域的情况下,更新外设所需非时钟信号的使能信号与外设所需时钟信号的有效沿交替出现,所述外设控制器包括:
分频计数器,用于计算若干主时钟信号周期内的有效沿位置,得出计数器值,所述计数器值计算规则如下:当所述复位信号有效沿时,所述计数器值更新为0,在所述主时钟信号有效沿时刻,若所述外设控制器使能信号为0且计数器值不为0,所述计数器值更新为0,在所述主时钟信号有效沿时刻,若所述计数器值等于分频倍数控制信号,所述计数器值更新为0,在所述主时钟信号有效沿时刻,若所述外设控制器使能信号为1,且所述计数器值小于分频倍数控制信号,所述计数器值增加1;
第一输出时钟信号计算单元,用于计算第一输出时钟信号,所述第一输出时钟信号计算规则如下:当所述复位信号有效沿时,所述第一输出时钟信号更新为0,在所述主时钟信号有效沿时刻若外设控制器使能信号为0,且第一输出时钟信号为1,则所述第一输出时钟信号更新为0,在所述主时钟信号有效沿时刻若计数器值等于0,且所述外设控制器使能信号为1,则所述第一输出时钟信号更新为原第一输出时钟信号的逻辑非的值;
第二输出时钟信号计算单元,用于计算第二输出时钟信号,所述第二输出时钟信号等于所述第一输出时钟信号的逻辑非的值;
外设所需非时钟信号更新使能计算单元,用于计算更新外设所需非时钟信号的使能信号,所述使能信号计算规则如下:当所述复位信号有效沿时,所述使能信号更新为0,在所述主时钟信号有效沿时刻若所述使能信号为1,则所述使能信号更新为0,在所述主时钟信号有效沿时刻若所述计数器值等于分频倍数控制信号,且所述外设控制器使能信号为1,且所述第一输出时钟信号为0,且所述分频倍数控制信号大于0,则所述使能信号更新为1,在所述主时钟信号有效沿时刻若计数器值等于分频倍数控制信号,且所述外设控制器使能信号为1,且所述第一输出时钟信号为1,且所述分频倍数控制信号等于0,则所述使能信号更新为1;
外设所需非时钟信号计算单元,用于计算外设所需非时钟信号,所述外设所需非时钟信号计算规则如下:当所述复位信号有效沿时,所述外设所需非时钟信号更新为外设所需的初始值,当所述主时钟信号有效沿时刻若所述使能信号为1,则所述外设所需非时钟信号根据所述当前逻辑信号值进行更新;
输出时钟选择单元,用于选择输出外设所需时钟信号,如果所述外设时钟有效沿选择信号为1,则所述输出时钟选择单元输出第二输出时钟信号作为外设所需时钟信号,如果所述外设时钟有效沿选择信号为0,则所述输出时钟选择单元输出第一输出时钟信号作为外设所需时钟信号;以及
外设控制器返回主控制器信号计算单元,用于计算外设控制器返回给主控制器信号,在所述主时钟信号有效沿时刻,根据当前所述逻辑信号值计算外设控制器返回给主控制器信号值。
本发明实施例的另一目的在于提供一种外设控制电路,所述外设控制电路包括:
主控制器和外设控制器;
主控制器,用于向所述外设控制器发送主时钟信号、复位信号、外设控制器使能信号、外设时钟有效沿选择信号、分频倍数控制信号和若干逻辑信号;
外设控制器,用于根据所述主时钟信号、复位信号、外设控制器使能信号、外设时钟有效沿选择信号、分频倍数控制信号和若干逻辑信号,经过计算,发送外设所需时钟信号和外设所需非时钟信号给外设,使得在只采用一个时钟域的情况下,更新外设所需非时钟信号的使能信号与外设所需时钟信号的有效沿交替出现,以及返回信号给所述主控制器,所述外设控制器包括:
分频计数器,用于计算若干主时钟信号周期内的有效沿位置,得出计数器值,所述计数器值计算规则如下:当所述复位信号有效沿时,所述计数器值更新为0,在所述主时钟信号有效沿时刻,若所述外设控制器使能信号为0且计数器值不为0,所述计数器值更新为0,在所述主时钟信号有效沿时刻,若所述计数器值等于分频倍数控制信号,所述计数器值更新为0,在所述主时钟信号有效沿时刻,若所述外设控制器使能信号为1,且所述计数器值小于分频倍数控制信号,所述计数器值增加1;
第一输出时钟信号计算单元,用于计算第一输出时钟信号,所述第一输出时钟信号计算规则如下:当所述复位信号有效沿时,所述第一输出时钟信号更新为0,在所述主时钟信号有效沿时刻若外设控制器使能信号为0,且第一输出时钟信号为1,则所述第一输出时钟信号更新为0,在所述主时钟信号有效沿时刻若计数器值等于0,且所述外设控制器使能信号为1,则所述第一输出时钟信号更新为原第一输出时钟信号的逻辑非的值;
第二输出时钟信号计算单元,用于计算第二输出时钟信号,所述第二输出时钟信号等于所述第一输出时钟信号的逻辑非的值;
外设所需非时钟信号更新使能计算单元,用于计算更新外设所需非时钟信号的使能信号,所述使能信号计算规则如下:当所述复位信号有效沿时,所述使能信号更新为0,在所述主时钟信号有效沿时刻若所述使能信号为1,则所述使能信号更新为0,在所述主时钟信号有效沿时刻若所述计数器值等于分频倍数控制信号,且所述外设控制器使能信号为1,且所述第一输出时钟信号为0,且所述分频倍数控制信号大于0,则所述使能信号更新为1,在所述主时钟信号有效沿时刻若计数器值等于分频倍数控制信号,且所述外设控制器使能信号为1,且所述第一输出时钟信号为1,且所述分频倍数控制信号等于0,则所述使能信号更新为1;
外设所需非时钟信号计算单元,用于计算外设所需非时钟信号,所述外设所需非时钟信号计算规则如下:当所述复位信号有效沿时,所述外设所需非时钟信号更新为外设所需的初始值,当所述主时钟信号有效沿时刻若所述使能信号为1,则所述外设所需非时钟信号根据所述当前逻辑信号值进行更新;
输出时钟选择单元,用于选择输出外设所需时钟信号,如果所述外设时钟有效沿选择信号为1,则所述输出时钟选择单元输出第二输出时钟信号作为外设所需时钟信号,如果所述外设时钟有效沿选择信号为0,则所述输出时钟选择单元输出第一输出时钟信号作为外设所需时钟信号;以及
外设控制器返回主控制器信号计算单元,用于计算外设控制器返回给主控制器信号,在所述主时钟信号有效沿时刻,根据当前所述逻辑信号值计算外设控制器返回给主控制器信号值。
在本发明实施例中,外设控制器在只采用一个时钟域的情况下,外设控制器通过计算使得更新外设所需非时钟信号的使能信号与外设所需时钟信号的有效沿交替出现,保证了外设在时钟信号的有效沿对外设所需非时钟信号进行采样时有足够的建立时间和保持时间,只使用一个时钟域,因此与双时钟域电路相比,该外设控制器电路简单,并且易于实现。
附图说明
图1是集成电路控制外设的结构图;
图2是时钟信号CLK_OUT采样非时钟信号CHS的波形图;
图3是本发明实施例提供的外设控制电路的结构图;
图4是本发明实施例提供的外设控制器信号的波形图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
在本发明实施例中,外设控制器在只采用一个时钟域的情况下,外设控制器通过计算使得更新外设所需非时钟信号的使能信号与外设所需时钟信号的有效沿交替出现,保证了外设在时钟信号的有效沿对外设所需非时钟信号进行采样时有足够的建立时间和保持时间,只使用一个时钟域,因此与双时钟域电路相比,该外设控制器电路简单,并且易于实现。
其中,建立时间为在时钟有效沿前,信号需要保持稳定不变的时间;保持时间为在时钟有效沿后,信号需要保持稳定不变的时间。
图3示出了本发明实施例提供的外设控制电路的模块结构,为了便于说明,仅示出了与本发明实施例相关的部分,详述如下。
外设控制电路包括:
主控制器100和外设控制器200;
主控制器100,用于向外设控制器200发送主时钟信号CLK、复位信号rst_n、外设控制器使能信号ctr_en、外设时钟有效沿选择信号clk_sel、分频倍数控制信号div_cnt和若干逻辑信号IN_SIGNALS;
外设控制器200,用于根据主时钟信号CLK、复位信号rst_n、外设控制器使能信号ctr_en、外设时钟有效沿选择信号clk_sel、分频倍数控制信号div_cnt和若干逻辑信号IN_SIGNALS,经过计算,发送外设所需时钟信号和外设所需非时钟信号给外设300,使得在只采用一个时钟域的情况下,更新外设所需非时钟信号的使能信号与外设所需时钟信号的有效沿交替出现,以及返回信号SIG_BACK给主控制器100。
作为本发明一实施例,外设控制器200包括:
分频计数器201,用于计算若干主时钟信号周期内的有效沿位置,计数器值用cnt表示,计数器值cnt计算规则如下:当复位信号rst_n有效沿时,计数器值cnt更新为0,在主时钟信号CLK有效沿时刻,若外设控制器使能信号ctr_en为0且计数器值cnt不为0,计数器值cnt更新为0,在主时钟信号CLK有效沿时刻,若计数器值cnt等于分频倍数控制信号div_cnt,计数器值cnt更新为0,在主时钟信号CLK有效沿时刻,若外设控制器使能信号ctr_en为1,且计数器值cnt小于分频倍数控制信号div_cnt,计数器值cnt更新为cnt+1;
第一输出时钟信号计算单元202,用于计算第一输出时钟信号即CLK_OUT1,第一输出时钟信号CLK_OUT1计算规则如下:当复位信号rst_n有效沿时,第一输出时钟信号CLK_OUT1更新为0,在主时钟信号CLK有效沿时刻若外设控制器使能信号ctr_en为0,且第一输出时钟信号CLK_OUT1为1,则第一输出时钟信号CLK_OUT1更新为0,在主时钟信号CLK有效沿时刻若计数器值cnt等于0,且外设控制器使能信号ctr_en为1,则第一输出时钟信号CLK_OUT1更新为第一输出时钟信号CLK_OUT1逻辑非的值;
第二输出时钟信号计算单元203,用于计算第二输出时钟信号即CLK_OUT2,第二输出时钟信号CLK_OUT2等于第一输出时钟信号CLK_OUT1的逻辑非的值,即CLK_OUT2=~CLK_OUT1;
外设所需非时钟信号更新使能计算单元204,用于计算更新外设所需非时钟信号CHS的使能信号enable,在主时钟信号CLK有效沿时刻若该使能信号enable为1,根据逻辑信号IN_SIGNALS的值来计算外设所需非时钟信号CHS的值,使能信号enable计算规则如下:当复位信号rst_n有效沿时,使能信号enable更新为0,在主时钟信号CLK有效沿时刻若使能信号enable为1,则使能信号enable更新为0,在主时钟信号CLK有效沿时刻若计数器值cnt等于分频倍数控制信号div_cnt,且外设控制器使能信号ctr_en为1,且第一输出时钟信号CLK_OUT1为0,且分频倍数控制信号div_cnt大于0,则使能信号enable更新为1,在主时钟信号CLK有效沿时刻若计数器值cnt等于分频倍数控制信号div_cnt,且外设控制器使能信号ctr_en为1,且第一输出时钟信号CLK_OUT1为1,且分频倍数控制信号div_cnt等于0,则使能信号enable更新为1;
外设所需非时钟信号计算单元205,用于计算外设所需非时钟信号CHS,外设所需非时钟信号CHS计算规则如下:当复位信号rst_n有效沿时,外设所需非时钟信号CHS更新为外设所需的初始值(外设不同或应用场合不同,初始值可能有所不同);当主时钟信号CLK有效沿时刻若使能信号enable为1,则外设所需非时钟信号CHS根据当前逻辑信号IN_SIGNALS值进行更新(根据逻辑信号IN_SIGNALS值计算外设所需非时钟信号CHS值的规则,根据外设和应用场合来确定);
输出时钟选择单元206,用于选择输出外设所需时钟信号,如果外设时钟有效沿选择信号clk_sel为1,则输出时钟选择单元206输出第二输出时钟信号CLK_OUT2作为外设时钟信号,即此时CLK_OUT=CLK_OUT2;如果外设时钟有效沿选择信号clk_sel为0,则输出时钟选择单元206输出第一输出时钟信号CLK_OUT1作为外设时钟信号,即此时CLK_OUT=CLK_OUT1,以上计算规则保证了外设时钟CLK_OUT有效沿和外设所需非时钟信号CHS变化位置的间距近似为(div_cnt+1)个CLK周期;以及
外设控制器返回主控制器信号计算单元207,用于计算外设控制器返回给主控制器信号SIG_BACK,在主时钟信号CLK有效沿时刻,根据当前逻辑信号IN_SIGNALS值计算外设控制器返回给主控制器信号SIG_BACK值(根据当前逻辑信号IN_SIGNALS值计算外设控制器返回给主控制器信号SIG_BACK值的规则,根据外设和应用场合来确定)。
图4示出了本发明实施例提供的外设控制器信号的波形,该图为复位信号rst_n的有效沿为下降沿,主时钟信号CLK的有效沿为上升沿,输出时钟信号CLK_OUT的有效沿为上升沿,分频倍数控制信号div_cnt=1时的实施实例。从图4中可以看出,非时钟信号CHS相对于输出时钟信号CLK_OUT的建立和保持时间都近似为2个CLK周期。
在本发明实施例中,外设控制器在只采用一个时钟域的情况下,外设控制器通过计算使得更新外设所需非时钟信号CHS的使能信号与外设所需时钟信号CLK_OUT的有效沿交替出现,保证了外设在时钟信号CLK_OUT的有效沿对外设所需非时钟信号CHS进行采样时有足够的建立时间和保持时间,建立和保持时间都近似为(div_cnt+1)个CLK周期,只使用一个时钟域,因此与双时钟域电路相比,该外设控制器电路简单,并且易于实现。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。