微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > 两个always快中对同一个寄存器赋值

两个always快中对同一个寄存器赋值

时间:10-02 整理:3721RD 点击:
问个代码风格的问题,在两个always快中对同一个寄存器赋值这样好不好,,

两个always快中对同一个寄存器赋值
语法错误

两个always快中对同一个寄存器赋值
不可能成功。:P

两个always快中对同一个寄存器赋值
牛!

两个always快中对同一个寄存器赋值
呵呵,DC中可能可以综合出结果,但是不是好习惯.

两个always快中对同一个寄存器赋值
呵呵,DC中可能可以综合出结果,但是不是好习惯 ?
不能吧!想象一下能有这样的电路吗?

两个always快中对同一个寄存器赋值
DC应该不可以吧,代码都不能读进去!
应该算是语法错误.

两个always快中对同一个寄存器赋值
仿真可以,综合不行.在写testbench时如有必要可以这么写,不过最好别这样,免得写习惯了写硬件也这样写.

两个always快中对同一个寄存器赋值
什么时候写testbench必须这么写?没遇到过,愿闻其详。

两个always快中对同一个寄存器赋值
单从Verilog语法说,这是可以的,并没有语法错误。
但是,这样子编程是不可综合的。
在testbench中,以下代码是可以仿真的:
reg t;
always @(posedge clk)
t <= 1'b0;
always @(negedge clk)
t <= 1'b1;

在仿真中可以用这个我遇到过,不过那是因为一次手误写错了,后来我还感慨了一下怎么modelsim都不告个warning。我只是不太清楚有什么地方一定要这么写,我觉得即使在testbench也该尽量避免这么写,总是有相应的办法代替的。

两个always快中对同一个寄存器赋值
为了和设计可综合电路代码风格一致,这种代码风格是不值得提倡的,可能相当数量公司内部都有这种禁止类似代码的不成文的规定。
个人以为,对于初学者或者在加测试激励时,分开写会容易理解些,在一个always中的一大堆的敏感量表是容易让人(初学者)糊涂的。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top