module DDS1(CLK1,DAC1,enable);
input CLK1 ;
input enable ;
output[9:0] DAC1;
reg [31:0] B1;
parameter N=32'hfffff ;
parameter M=32'h0 ;
always @(negedge enable) begin
if(enable==1'b0) B1<=M;
end
DDS DDS2(.CLK(CLK1),.B(B1),.DAC(DAC1));
endmodule
DDS模块是我用原理图画好后生成的,地址是32位,能正常实现(已下载到板子,并接DA,看到稳定的波形了)
上面的程序是我的顶层,调用了DDS模块,问题出在哪了呢?
是这样的,我本来想用外部的条件来触发输出信号的,但是我还没给enable的信号,
B1的值就改变了,我怎么发现的呢?
是这样的,我在always里面给B1不同的值,M和N,当为M的时候(M=0),没有波形。
当为N的时候(N=0xfff00),有波形。意思是我还没给enable信号,always模块已经执行了。
这是怎么回事呢?
编译的时候,warning有5个,不明白的有:
Warning: Design contains 1 input pin(s) that do not drive logic
Warning (15610): No output dependent on input pin "enable"
Warning: Found pins functioning as undefined clocks and/or memory enables
Info: Assuming node "CLK1" is an undefined clock
Info: Assuming node "altera_internal_jtag~TCKUTAP" is an undefined clock
共4条
1/1 1 跳转至页
Warning: Design contains 1 input pin(s) that do not drive logic
此warning说明你要输入的enable不会起作用。
你的代码风格有很大问题。首先,always敏感列表中没有时钟信号而又有边沿negedge,这样的敏感列表我也不知道会综合成什么样子。时序逻辑异步复位可以写为:always@(posedge clk or negedge nReset),这样会综合成带异步复位的D触发器。其次,if语句后面没有跟else,如果敏感列表中有时钟,会综合成锁存器,也许这样的锁存器并不是你需要的。
建议你改为:
reg reg_enable;
always @(posedge CLK1 )
reg_enable <= enable;
always @(posedge CLK1)
if(!reg_enable)
B1<=M;
else
B1<=N;
此warning说明你要输入的enable不会起作用。
你的代码风格有很大问题。首先,always敏感列表中没有时钟信号而又有边沿negedge,这样的敏感列表我也不知道会综合成什么样子。时序逻辑异步复位可以写为:always@(posedge clk or negedge nReset),这样会综合成带异步复位的D触发器。其次,if语句后面没有跟else,如果敏感列表中有时钟,会综合成锁存器,也许这样的锁存器并不是你需要的。
建议你改为:
reg reg_enable;
always @(posedge CLK1 )
reg_enable <= enable;
always @(posedge CLK1)
if(!reg_enable)
B1<=M;
else
B1<=N;
共4条
1/1 1 跳转至页
回复
| 有奖活动 | |
|---|---|
| 这个春节你犒赏自己什么了?分享你的故事,有奖征集 | |
| 2026年“我要开发板活动”第三季,开始了! | |
| 硬核工程师专属补给计划——填盲盒 | |
| “我踩过的那些坑”主题活动——第002期 | |
| 【EEPW电子工程师创研计划】技术变现通道已开启~ | |
| 发原创文章 【每月瓜分千元赏金 凭实力攒钱买好礼~】 | |
| 【EEPW在线】E起听工程师的声音! | |
| 高校联络员开始招募啦!有惊喜!! | |
我要赚赏金打赏帖 |
|
|---|---|
| OK1126B-S开发板下函数构建及步进电机驱动控制被打赏¥25元 | |
| 【S32K3XX】LPI2C 参数配置说明被打赏¥20元 | |
| OK1126B-S开发板的脚本编程及应用设计被打赏¥27元 | |
| 5v升压8.4v两节锂电池充电芯片,针对同步和异步的IC测试被打赏¥35元 | |
| 【S32K3XX】S32DS LPI2C 配置失败问题解决被打赏¥22元 | |
| 【S32K3XX】FLASH 的 DID 保护机制被打赏¥19元 | |
| OK1126B-S开发板串口通信及其使用被打赏¥18元 | |
| 【S32K3XX】多核 CORE ID 获取被打赏¥18元 | |
| OK1126B-S开发板的GPIO资源及其使用被打赏¥20元 | |
| 【分享开发笔记,赚取电动螺丝刀】三分钟快速上手驱动屏幕(Arduino IDE环境)被打赏¥23元 | |
我要赚赏金
