verilog
文章平均质量分 57
时空默契_yxg
这个作者很懒,什么都没留下…
展开
-
FPGA调试问题记录(软件无线电)
输出的频率不是精确的,比如驱动时钟是204.8MHz需要产生1MHz的正弦波形时如果相位的精度是32位,则每个时钟的相位增量就是(1M/204.8M)*(2^32) = 20,971,520 是一个整数,dds产生的正弦波频率为1MHz。此时就需要将丢失0.48的相位补偿回来补偿的周期为0.48与1的最小公倍数25(0.48*25=1*12),也就是第25时钟时相位的增量21,474,8367+12 (21,474,836.48*25==21,474,836*24+21,474,836+12)。原创 2023-03-11 22:05:13 · 2079 阅读 · 0 评论 -
ADC RF中频采样 Vivado Verilog 联合 matlab 进行带通滤波器设计与仿真
1.滤波器参数计算RF中频信号的频率范围为70MHz±2MHz,采样频率为40.625MHz。采样后信号的频谱是原信号频谱以40.625MHz为周期的频谱搬移,根据奈奎斯特采样定理,40.625MHz采样率的奈奎斯特采样区为[N*20.3125,(N+1)*20.3125] MHz (N为自然数)。频谱搬移在第一奈奎斯特采样区为11.25MHz±2MHz(负频率向右的两次频移)。所以滤波器的通带需要设计为9.25MHz~13.25MHz通过的带通滤波器。2.通过matlab的fdatool工具进行滤波器原创 2021-10-25 11:47:31 · 1317 阅读 · 0 评论 -
[Synth 8-3438] module ‘core‘ declared at ‘XXX‘ does not have any parameter ‘param‘ used as named
原文:Vivado IP Flows - ERROR: [Synth 8-3438] module ‘my_core’ declared at ‘XXX’ does not have any parameter ‘my_param’ used as named parameter override采用OOC模式生成的IP核由于生成的是网表文件,IP核的参数已经固定无法再更改,例化时如果改变了IP核的传入参数(parameter values)就会出现这种错误。OOC模式要改变IP核参数需要重新生成IP核原创 2021-07-06 18:01:32 · 2202 阅读 · 0 评论 -
FPGA Verilog md5算法实现源代码及仿真文件分享。
md5 算法标准:https://tools.ietf.org/html/rfc1321MD5 算法有 5 个步骤:1.将数据从头开始按 512 个 bit 划分成块。在最后一位数据后面添加一位 1 后,再继续添加一定数量的 0 使最后一块数据有448(512-64)位。2.在剩下的64位里填入实际数据的长度。3.将512位的块按32位分为16份,使用a、b、c、d四个32位参数与这16份数据与都进行4轮函数变换(共64次)。最后得到变换后的a、b、c、d。4.将变换后的a、b、c、d与下一块数据原创 2020-11-21 16:57:17 · 2846 阅读 · 9 评论 -
FPGA 仿真与实际不一样,仿真没有打拍,仿真时钟问题。
代码明明有打拍但仿真却没有打拍,最后发现是因为仿真文件给的信号与时钟在同一时刻造成时钟边缘没有采样上。解决方法:不使用驱动仿真文件中信号生成的时钟作为仿真时钟,使用一个与它不同相的时钟作为仿真时钟。比如clk_1在仿真文件内部用于产生仿真信号。与clk_1不同相的clk_2作为仿真时钟输出。...原创 2021-04-30 11:24:42 · 3327 阅读 · 1 评论 -
vscode自定义代码片段编写,tab缩进,初始值,默认值官方指南
"process":{ "prefix": "gen",//触发关键字 "body": [ "--$1_gen$2", //$1 $2 按顺序标记 tab 跳转位置 "$1_gen : process( ${3:rst_n, clk_i} )", //${num:default} 包含初始值的标记 "begin", "\t$0", //$0为光标最后停留位置 "end process" ], "description": "process generate".原创 2021-02-24 12:41:13 · 1441 阅读 · 0 评论 -
Total Negative Slack ( TNS ) Worst Negative Slack ( WNS )
The “Worst Negative Slack (WNS)” reported by commands like report_timing_summary is actually the worst positive slack. If WNS is positive then it means that the path passes. If it is negative, then it means the path fails. So, this is really a misnomer.Th转载 2020-12-31 09:36:36 · 2983 阅读 · 0 评论 -
FPGA Vivado XDC 约束文件编写方式语法笔记
参考手册:UG625:https://china.xilinx.com/support/documentation/sw_manuals/xilinx14_7/cgd.pdf一、时钟约束1.时钟clk0的周期为10ns占空比为50%相移为0其约束形式为:clk0: period = 10, waveform = {0 5} // {0, 5} 表示一个周期的波形中0ns - 5ns 为高。2.时钟clk1的周期为8ns占空比为75%(6ns)相移为2ns其约束形式为:clk1: period原创 2020-12-29 17:23:04 · 39972 阅读 · 7 评论 -
Verilog # parameter参数传入generate参数重定义举例说明
// para 模块module para( input clk, input rst, input [WA-1:0] a, input [WB-1:0] b, output reg [WS-1:0] sum );parameter WA = 1;parameter WB = 1;parameter WS = 2;always @(posedge clk)begin原创 2020-12-29 15:10:15 · 2751 阅读 · 0 评论