- 博客(15)
- 收藏
- 关注
原创 同时钟域下,模块间buffer深度、宽度设置
同一时钟域下,模块A和模块B,其中模块A为模块B的上级模块,模块A每个时钟能输出128bit的数据,而模块B每个时钟只能处理16bit的数据,则需要在模块B中增加缓冲buffer,由于这种情况,无论buffer的深度设置为多少都会被填满的时候,所以将输入的128bit的数据进行拆解为8x16,所以将buffer的宽度设置为16bit,深度设置为8,并且设置buffer_full标志位,每当模块B接收到128bit数据便将buffer_full信号拉高;
2023-04-12 09:20:47 247
原创 脉冲同步(低时钟域到高时钟域)
将clk1中的脉冲信号a,同步到clk2中。需要注意的一点,若是clk1和clk2频率相差太大,则时钟域clk1中的脉冲a便不能被clk2所采取。
2023-03-16 11:28:42 230
原创 将单条lane输入的8bit数据按照用户设置的LSB/MSB进行拼接成用户设置的word(8/10/12/14/16bit)格式
将单条lane输入的8bit数据按照用户设置的LSB/MSB进行拼接成用户设置的word(8/10/12/14/16bit)格式
2023-02-22 10:25:49 323
转载 为什么打两拍可以消除亚稳态的影响?
采样信号sig是慢时钟域的信号,正好当第一个clk上升沿建立时间和保持时间内采样信号发生了变化,reg1及出现了一个亚稳态的状态,当第二个采样时钟对reg1进行采样时,在第二个clk上升沿的建立时间和保持时间的范围内 reg1保持在稳定的概率要比第一个时刻大得多,相应的发生亚稳态的概率也会减小,一般来说,第一级寄存器的发生亚稳态的之后稳定的概率为70%,第二次寄存器发生亚稳态之后稳定的概率为99%。(即打两拍后的值可能不是正确的sig,但一定是个稳定的值),之后的状态是跟输入的状态保持一致的。...
2022-08-28 14:39:45 1911
原创 基于FPGA的串口通信
数据位为8位,停止位为1位,无奇偶校验位实现代码://******************************************************************************************// 顶层代码//*****************...
2020-02-25 11:45:03 511
原创 FPGA边沿检测Verilog代码
FPGA边沿检测Verilog代码(上升沿,下降沿,双边沿)实现思路:用两个一位寄存器直接异或可以实现代码实现:module edge_detect( input clk, input rst_n, ...
2020-02-24 11:51:58 736
原创 FPGA串口波特率与系统时钟频率关系
FPGA串口波特率与系统时钟频率关系 FPGA主板频率是50Mhz,T=20ns 9600波特率指的是9600bps,9600bit/s 然后周期是1/速率 = 1/9600 = 1.0416666667*...
2020-02-24 10:23:29 11218 3
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人