newselect 发表于 2011-12-12 15:52:36

关于Verilog程序综合出来的结果

module example(
      input        clk,
      output reg out);

reg cnt;
always @(posedge clk)
begin
      if (cnt == 1'd1)    //版本1, 屏蔽下一行               
      //if (cnt == 4'd8)   //版本2, 屏蔽上一行,打开该行               
                begin
                cnt <= 1'd0;
                out <= ~out;
                end
      else
                cnt <= cnt + 1'd1;
end
endmodule
以上为实验程序
http://cache.amobbs.com/bbs_upload782111/files_49/ourdev_703937J8H8GM.gif
版本1 (原文件名:版本1.gif)

http://cache.amobbs.com/bbs_upload782111/files_49/ourdev_703938TXHBSV.gif
版本2 (原文件名:版本2.gif)

问题: 版本1比版本2综合出来的结果 占用门数少, 请问版本1可靠吗?

感觉问题重点不明确,修改一下:
问:需要实现的功能是 clk的8分频,请问版本1功能可靠吗?

h2feo4 发表于 2011-12-12 16:02:33

这两个东西功能是不等价的

newselect 发表于 2011-12-12 16:05:28

楼上细说一下

gzhuli 发表于 2011-12-12 16:11:55

版本1只比较cnt一位,版本2比较整个cnt 4位……

Jigsaw 发表于 2011-12-12 16:13:01

比较只能在程序都相同的环境下进行

Nuker 发表于 2011-12-12 16:49:23

你可以假设cnt的初始值为0到15,然后比较两种写法产生的不同响应。

daixizheng 发表于 2011-12-13 18:18:41

你这就是个16分频么!!我都感觉不用写这么复杂!!!
module example(
      input        clk,
      output reg out);

reg cnt;

always @(posedge clk)
begin
                cnt <= cnt + 1'd1;
end

assign   out = cnt ;


还有你写程序难道一般不写复位的吗???

endmodule

newselect 发表于 2011-12-27 09:04:42

只是演示用而已,见笑
页: [1]
查看完整版本: 关于Verilog程序综合出来的结果