skynet 发表于 2012-9-8 11:41:44

过程连续赋值为什么出错了,书上的代码居然不能编译

Verilog HDL应用程序设计实例精讲
这本书里面的1个例子

//异步清零输入的下降沿D触发器
module test1(q,d,clr,clk);
input d,clr,clk;
output q;
reg q;//输出,寄存器类型
always @(clr)//清零信号
begin
        if(!clr)//下降沿清零
                assign q = 0;
                else                
                deassignq;
end
always @(negedge clk)//下降沿时钟
begin
q = d;
end
endmodule
编译失败了.
Error (10043): Verilog HDL unsupported feature error at test1.v(11): Procedural Continuous Assignment to register is not supported

sky5566 发表于 2012-9-8 11:49:00

assign q = 0; 不能在 always @( 內

skynet 发表于 2012-9-8 12:01:46

sky5566 发表于 2012-9-8 11:49 static/image/common/back.gif
assign q = 0; 不能在 always @( 內

难道那本书写错了???

lgg88 发表于 2012-9-8 12:46:15

always里面用非阻塞,看看

sky5566 发表于 2012-9-8 13:17:48

skynet 发表于 2012-9-8 12:01 static/image/common/back.gif
难道那本书写错了???

沒有看過這樣的寫法{:sad:}
那本書可以丟掉了{:titter:}

jlhgold 发表于 2012-9-8 13:33:15

这个 assign能放在那里? 本人小白一个 ╮(╯_╰)╭

skynet 发表于 2012-9-8 14:04:28

看来那本书实在是不怎么样{:sweat:}{:funk:}

pontiff 发表于 2012-9-9 00:02:54

什么书啊,报书名吧,别再坑了别人。

skynet 发表于 2012-9-9 00:11:49

Verilog HDL应用程序设计实例精讲
139页


wuyuehang 发表于 2012-9-9 08:56:28

skynet 发表于 2012-9-8 12:01 static/image/common/back.gif
难道那本书写错了???

楼上正解,建议参考夏宇闻的verilog数字电路设计

sky5566 发表于 2012-9-9 09:28:57

本帖最后由 sky5566 于 2012-9-9 09:30 编辑

可能是書中作者自己散播的掃描板吧,一般掃描解析度很低的假的
{Verilog HDL数字系统设计 王建民田晓华} 掃瞄板很清楚,站內有

STM_FPGA 发表于 2012-9-20 19:38:35

好像也有这种用法,不是咱们讲的连续赋值语句,这种语句是不可综合的,应该是仿真电路里使用,也很疑惑。

mysunmax 发表于 2012-9-20 22:02:16

reg q;//输出,寄存器类型
always @(clr)//清零信号
begin
      if(!clr)//下降沿清零
                assign q = 0;
reg 不能用于assign吧

pocker5200 发表于 2012-9-21 16:19:32

技术类书籍只看国外原著或者原著翻译的经典教材。

隐姓埋名 发表于 2012-9-23 22:06:46

我记得是有这种写法的,不过是仿真用的,正常的综合工具是无法通过的,请不要用这种方法去写
页: [1]
查看完整版本: 过程连续赋值为什么出错了,书上的代码居然不能编译