数字电路设计之同步电路的一些经验
来源:互联网 发布:kendalltau python 编辑:程序博客网 时间:2024/06/05 14:11
在设计的过程中,异步复位电路对硬件要求更低,更容易实现,但是使用同步复位电路却有着诸多优点,使得在实际的工业设计中更多使用的是同步复位电路。使用同步电路一般有以下好处:第一个就是避免毛刺,使用逻辑电路就一定会有毛刺。使用同步电路就有效避免毛刺。第二个就是简化了时序分析,不然有多个时钟,那么时序上就很难分析了。第三个就是减少环境对设计的影响。异步电路易受工作温度,电压的影响,器件延时变化很大。最终可能芯片无法使用。
说了同步电路的优点,那么就说一下怎么设计。设计的时候使用单时钟策略(全局时钟网络)。这里对于全局时钟怎么做,以后会说到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
还有一个需要注意的是不要在模块内部使用计数器分频产生所需要的时钟,这样会导致时钟漂移,降低了设计的可靠性,可以使用对时钟信号进行使能实现所需电路。
- 数字电路设计之同步电路的一些经验
- 数字电路设计之同步状态机的verilog HDL实现
- 数字电路设计之同步时钟采样模块
- 模拟电路和数字电路PCB设计的区别
- 数字电路:设计《三个开关控制一个灯的电路》
- 数字电路:设计《BIN 到 BCD 码的转换电路》
- 数字电路设计之堆栈的verilog实现
- 数字电路设计之逻辑综合的优化
- 数字电路设计之function的使用
- 数字电路设计之加法器的实现
- 数字电路设计之简单的滤波算法
- 数字电路设计之简单的滤波算法
- 数字电路设计之数字电路工程师面试集锦
- 数字电路的一些基本概念
- 数字电路的一些基本知识
- 由一些公司的笔试题目想到的---模拟电路,数字电路最基本应该知道哪些
- 数字电路与模拟电路的区别
- 模拟电路与数字电路的区别
- hdoj 1214 圆桌会议【数学】
- unix环境高级编程复习-文件I/O(2)
- Hdu1404 Digital Deletions(暴力SG博弈)
- Word Break II
- poj 1276 Cash Machine
- 数字电路设计之同步电路的一些经验
- ZOJ 3508 ——The War 贪心
- Hibernate getCurrentSession 与 openSession() 的区别
- 【最短路径floyd算法】HDU 1869---六度分离
- 静态字典树和动态字典树模板
- 深入Linux设备驱动程序内核机制读书笔记
- IOS中延时执行的几种方式的比较和汇总
- dijkstra完整模板
- Android客户端和Servlet服务端的JSON传输(注释详细到啰嗦的地步,欢迎新手学习)