摘要: 仿真时本来应该将.tb模块设置为顶层。但由于.tb模块中没有逻辑便会出现此错误。 纠正:将模块中的另一个.v文件设置为顶层模块即可。 阅读全文
posted @ 2020-04-11 18:10 园游会丶 阅读(730) 评论(0) 推荐(0)
摘要: /*******************IIC.v***************************/ module IIC( input clk, input rst_n, output reg sclk //分频后的时钟 ); parameter SYS_CLK = 25_000_000; 阅读全文
posted @ 2020-04-11 18:05 园游会丶 阅读(4607) 评论(0) 推荐(0)
摘要: 如果其他工程的外部器件需要用到一个SCLK,并且该外部器件的时序图可通过序列机实现(如DAC_TLV5618),则可以通过稍微改动来产生一个可变的时钟SCLK。//************************************************************ // DAC_ 阅读全文
posted @ 2020-04-11 15:48 园游会丶 阅读(374) 评论(0) 推荐(0)
摘要: 错误原因:例化的模块中的变量前面没有加. 阅读全文
posted @ 2020-04-10 21:35 园游会丶 阅读(479) 评论(0) 推荐(0)
摘要: 1.verilog代码中input类型的变量是wire类型,不能定义为reg类型 2.always块中 “<=” 的左边的变量需要定义为reg类型,右边是不需要的。比如: input [11:0] Fword; reg [31:0] Fre_Acc ; always@(posedge clk or 阅读全文
posted @ 2020-04-10 17:35 园游会丶 阅读(1625) 评论(0) 推荐(0)
摘要: 仿真数据输出为0的主要原因是: 修改后的仿真就正常了 一些注意的点: 阅读全文
posted @ 2020-04-09 09:38 园游会丶 阅读(819) 评论(0) 推荐(0)
摘要: 上图对应下面IP核的设置(即定义了12移位寄存器,每个寄存器有8bit) 其中taps是 1st,4th,7th,10th 拼接成的[31:0]位寄存器。假如要移位寄存640个8bit数据,若设置taps = 2,则 应设置distance = 320,taps = {321th_data , 1s 阅读全文
posted @ 2020-04-04 16:49 园游会丶 阅读(3356) 评论(0) 推荐(0)
摘要: 阅读全文
posted @ 2020-03-29 17:23 园游会丶 阅读(194) 评论(0) 推荐(0)
摘要: 1.首先我们需要画出系统大概框 3.结合系统看那些地方用到序列机,那些地方用到状态机 2.考虑系统有哪些输出,哪些输入 3.是否需要产生子模块的时钟频率 4.设置一个计数器cnt,要看其是否只在非空闲状态下进行计数,如果在空闲状态下不计数,则需要设置一个非空闲状态标志位,在该标志位为1的情况下cnt 阅读全文
posted @ 2020-03-29 11:48 园游会丶 阅读(551) 评论(0) 推荐(0)
摘要: 高阻态这是一个数字电路里常见的术语,指的是电路的一种输出状态,既不是高电平也不是低电平,如果高阻态再输入下一级电路的话,对下级电路无任何影响,和没接一样。 高阻态的意义:当门电路的输出上拉管导通而下拉管截止时,输出为高电平;反之就是低电平;如上拉管和下拉管都截止时,输出端就相当于浮空(没有电流流动) 阅读全文
posted @ 2020-03-23 17:28 园游会丶 阅读(5326) 评论(0) 推荐(1)