数字电路设计之同步电路的一些经验
2014-08-01 20:22
176 查看
在设计的过程中,异步复位电路对硬件要求更低,更容易实现,但是使用同步复位电路却有着诸多优点,使得在实际的工业设计中更多使用的是同步复位电路。使用同步电路一般有以下好处:第一个就是避免毛刺,使用逻辑电路就一定会有毛刺。使用同步电路就有效避免毛刺。第二个就是简化了时序分析,不然有多个时钟,那么时序上就很难分析了。第三个就是减少环境对设计的影响。异步电路易受工作温度,电压的影响,器件延时变化很大。最终可能芯片无法使用。
说了同步电路的优点,那么就说一下怎么设计。设计的时候使用单时钟策略(全局时钟网络)。这里对于全局时钟怎么做,以后会说到PLL。尽量不要用混合时钟。举个栗子,比如你使用以下方法进行采样,结果发现结果颠倒。
module hunhe_clock( clk,din,d_temp,dout );
input wire clk;
input wire [7:0]din;
output reg [7:0]d_temp;
output reg [7:0]dout;
always@(negedge clk)begin
d_temp <= din;
end
always@(posedge clk)begin
dout <= d_temp;
end
endmodule
仿真文件:(这里的仿真结果看出仿真还是对的,那是因为此时仿真没有计算建立保持时间等等)
module hunhe_test;
// Inputs
reg clk;
reg [7:0] din;
// Outputs
wire [7:0] d_temp;
wire [7:0] dout;
// Instantiate the Unit Under Test (UUT)
hunhe_clock uut (
.clk(clk),
.din(din),
.d_temp(d_temp),
.dout(dout)
);
always #50 clk = !clk;
integer i;
initial begin
// Initialize Inputs
clk = 0;
din = 15;
// Wait 100 ns for global reset to finish
#100;
for( i = 0;i <= 10;i=i+1) begin
din = din + 1;
#100;
end
// Add stimulus here
end
endmodule
还有一个需要注意的是不要在模块内部使用计数器分频产生所需要的时钟,这样会导致时钟漂移,降低了设计的可靠性,可以使用对时钟信号进行使能实现所需电路。
说了同步电路的优点,那么就说一下怎么设计。设计的时候使用单时钟策略(全局时钟网络)。这里对于全局时钟怎么做,以后会说到PLL。尽量不要用混合时钟。举个栗子,比如你使用以下方法进行采样,结果发现结果颠倒。
module hunhe_clock( clk,din,d_temp,dout );
input wire clk;
input wire [7:0]din;
output reg [7:0]d_temp;
output reg [7:0]dout;
always@(negedge clk)begin
d_temp <= din;
end
always@(posedge clk)begin
dout <= d_temp;
end
endmodule
仿真文件:(这里的仿真结果看出仿真还是对的,那是因为此时仿真没有计算建立保持时间等等)
module hunhe_test;
// Inputs
reg clk;
reg [7:0] din;
// Outputs
wire [7:0] d_temp;
wire [7:0] dout;
// Instantiate the Unit Under Test (UUT)
hunhe_clock uut (
.clk(clk),
.din(din),
.d_temp(d_temp),
.dout(dout)
);
always #50 clk = !clk;
integer i;
initial begin
// Initialize Inputs
clk = 0;
din = 15;
// Wait 100 ns for global reset to finish
#100;
for( i = 0;i <= 10;i=i+1) begin
din = din + 1;
#100;
end
// Add stimulus here
end
endmodule
还有一个需要注意的是不要在模块内部使用计数器分频产生所需要的时钟,这样会导致时钟漂移,降低了设计的可靠性,可以使用对时钟信号进行使能实现所需电路。
相关文章推荐
- 与虚拟机vxWorks符号表同步的一些经验总结
- 关于SQL SERVER数据同步自己的一些设计经验
- (转)关于SQL SERVER数据同步自己的一些设计经验
- 好长时间上不了博客,我还以为因为我发表抗日言论账户被删了,编程中好多新经验新发现不能拿出来和朋友们分享,那个急呀。以下是我在工作中积累的一些经验和解决的一些问题,希望能对大家有一点帮助。
- android处理软键盘的方式 我的一些经验
- 做Adsense的一些经验
- cmake的一些小经验
- 一些数据挖掘比赛经验
- 选择TTL和CMOS混合电路时需要注意的一些问题
- 在vs中线程死锁时的一些调试经验
- asp.net网站MVC开发模式下实现Sitemap(站点导航)的一些经验教训
- 项目经理三年多来的一些心得和经验总结
- 十年经验-给程序员小弟弟小妹妹们的一些总结性忠告(转)
- 嵌入开发(WinCE)的一些经验[摘录]
- 关于工作的一些经验
- 关于ASP.NET在IIS一些问题的经验总结
- 谈谈生成静态页面的一些经验
- 这回是帐号同步异常,血泪经验和教训!
- 将数据从PostgreSQL同步到Elasticsearch的经验总结
- 用localStorage来存储数据的一些经验