verilog 综合时, 报错说cont2, a directly connected net is driven by more than one source

作者&投稿:禄洪 (若有异议请与网页底部的电邮联系)
verilog在做综合时,报错a directly connected net is driven by more than one source~

跟条件没关系,同一个变量就是不能在两个always下赋值,你这个完全可以写在同一个always下面为什么要分开。修改一下:
///always @ (posedge ph1) begin
//if(cont == 15)
//PM_11[0] = 10'd100;
//end
上面这段可以全删了。加到下面去:
// Memory Write Block
// Write Operation : When we = 1, cs = 1
always @ (posedge ph1)
begin : MEM_WRITE
if(cont == 15)
PM_11[0] = 10'd100;
else if (cont = 16 && we_pm_11)
begin
PM_11[address] = data_in_pm_11;
end
end

module ShitReg(cp, rst, din, dout);

input cp;
input rst;
input din;
output reg [7:0] dout;

reg regin;

key_clk FF0(cp, din, regin);

always @(posedge cp or posedge rst)
begin
if(rst)
dout = 8'b11111111;
//else begin
dout = dout << 1;
dout[0] = regin;
//end
end

endmodule

module key_clk(clk, in, out); //去抖动
input clk;
input in;
output reg out;
reg in1;
reg in2;
reg count; //计数器宽度???

always @( posedge clk)//CLK 50M
begin
count <= count+1;
if(count == 500000)
begin
in1 <= in;
count <= 0;
end
in2 <= in1;
out <= in2 & (!in1);
end
endmodule

代码写的很不规范,问题较多~

always@(negedge ph2)和always@(posedge ph2),在这两个动作下都对cont2有操作,这本身就不能综合出有效电路;给你一个建议 第一个动作 对变量1操作,第二个动作 对变量2操作;最终你要的可以使用变量1和变量2逻辑与、或、非等达到预期输出,仅供参考


鹤岗市18015625871: verilog 综合时, 报错说cont2, a directly connected net is driven by more than one source -
伏蚁益肾: always@(negedge ph2)和always@(posedge ph2),在这两个动作下都对cont2有操作,这本身就不能综合出有效电路;给你一个建议 第一个动作 对变量1操作,第二个动作 对变量2操作;最终你要的可以使用变量1和变量2逻辑与、或、非等达到预期输出,仅供参考

鹤岗市18015625871: Verilog出现错误该怎么解决 -
伏蚁益肾: 你将阻塞和非阻塞混用了,一般情况是你可能在一个always模块了,有的变量用=赋值,有的用

鹤岗市18015625871: verilog在做综合时,报错a directly connected net is driven by more than one source -
伏蚁益肾: 跟条件没关系,同一个变量就是不能在两个always下赋值,你这个完全可以写在同一个always下面为什么要分开.修改一下:///always @ (posedge ph1) begin//if(cont == 15)//PM_11[0] = 10'd100;//end上面这段可以全删了.加到下面去: // ...

鹤岗市18015625871: 什么是verilog综合, -
伏蚁益肾: 综合就是把你写的rtl代码转换成对应的实际电路. 比如你写代码assign a=b&c; EDA综合工具就会去元件库里拿一个二输入与门出来,然后输入端分别接上b和c,输出端接上a假如你写了很多这样的语句 assign a=b&c; assign c=e|f; assign e=x^y...

鹤岗市18015625871: 在Quartus中编译Verilog程序中出现这样的报错怎样处理啊 -
伏蚁益肾: 编译没有什么问题,是你软件的问题!在就是程序的时候一般不对输入变量进行类型说明,都采用默认类型!最好重新找一个软件试试,如果有问题再探讨!

鹤岗市18015625871: verilog错误分析 -
伏蚁益肾: 你找找这个 模块调用的时候 有没有定义位宽不匹配的??就是在你调用的这个模块里 有的位宽超出了 定义的范围 HOHO

鹤岗市18015625871: Verilog HDL错误Error (10110) -
伏蚁益肾: 就是说你的sec在程序中有时是用非阻塞赋值,有时是用阻塞赋值,这样是不允许的. sec[3:0]<=4'b0000;sec[7:4]=sec[7:4]+4'b0001;

鹤岗市18015625871: Verilog错误提示Cannot mix blocking and non blocking assignments on signal <n>.是什么意思,怎么解决 -
伏蚁益肾: 搜一下:Verilog错误提示Cannot mix blocking and non blocking assignments on signal .是什么意思,怎么解决

鹤岗市18015625871: 这个verilog程序的问题怎么解决? -
伏蚁益肾: 调用错误,举个例子给你 pmos p1(c,pwr,b);不能这样写.pmos p1(.c (c), .pwr(pwr), .b(b) ); 前面要加点,前面的字母是调用程序的端口,括号里面的字母是本程序使用的端口

鹤岗市18015625871: verilog case语句错误,无法编译 -
伏蚁益肾: 3's000,3's001,3's010:这个地方错了--->应该是:3'b000,3'b001,3'b010 计算机语言,要么二进制(b),要么8进制(o),10进制(d),或者16进制(h),你写的s是哪个进制呢?

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网