|
发表于 2008-1-22 17:15:17
|
显示全部楼层
说不错的人肯定是没好好研究过,我曾经做过模仿16550的东西,这样简单的uart在真正的项目中能有什么用呢?它的 出处是xilinx的网站上一个cpld参考设计中来的,而且象下面的描述,虽然综合工具不会报错,但肯定能误导一些人对verilog的认识!
always @(posedge clk1x or posedge rst or negedge clk1x_enable)
if (rst)
no_bits_sent = 4'b0000 ;
else if (!clk1x_enable)
no_bits_sent = 4'b0000 ;
else
no_bits_sent = no_bits_sent + 1 ;
verilog综合子集中很明确的说明了"always后面的posedge rst or negedge clk1x_enable"是异步实现的,
我看了这段代码的综合实现,是将clk1X_enable做为使能来实现的,也就说用了同步的方法
这就是典型的仿真语义与综合结果不一致的现象,一般的牛哥都几次三番说这样做不好!
我认为综合工具这样处理是正确的,但语言中描述为"异步使能"多少让人感到迷惑.
我用xilinx的东西快4年了,个人觉得它是极小气的公司,他如此小气,公开的一些源设计代码时自然不保证质量,所以小心!
小气不是说xilinx不好,结论是非常好!
[ 本帖最后由 loveineda 于 2008-1-23 07:58 编辑 ] |
|