常见verilog错误

多驱动

/********************************1************************************/
// always @(*) begin
//     temp_c <= temp_a * temp_b;
// end

// always @(*) begin
//     temp_c <= temp_a ^ temp_b;
// end
/*********************************************************************/

阻塞与非阻塞混用

/*******************************2*************************************/
// always @(*) begin
//     temp_c <= temp_a * temp_b;
//     temp_c = temp_a ^ temp_b;
// end
/*********************************************************************/

阻塞非阻塞语义理解

/*******************************3*************************************/
///初学者容易犯错的一个点就是阻塞赋值和非阻塞赋值//
        a = 1

// always @(posedge temp_a) begin
//     b <= a;    //     b = a;
//     c <= b;    //     c = b;
// end
// always @(posedge temp_a) begin
//     if(b)
//         begin
//             //  code piece 1
//         end
//     else
//         begin
//             //  code piece 2
//         end
// end

/*********************************************************************/

关键字 or 和逻辑或 || 混用

/*******************************4*************************************/
// always @(temp_a || temp_b) begin
    
// end

// always @(temp_a or temp_b) begin
    
// end
/*********************************************************************/

混用其他语言格式

/********************************5************************************/
// always @(*) begin
//     if(temp_a)
//         temp <= temp_b;
//         temp_c <= temp;
// end
/*********************************************************************/

异步复位信号的描述

/*********************************6***********************************/
// reg clk; reg rst_n;
// always @(posedge clk or negedge rst_n) begin
//             //不可综合
//     if(rst_n)
//         begin
//             temp_c <= 1'b0;
//         end
//     else
//         begin
//             temp_c <= 1'b1;
//         end
// end
/*********************************************************************/

for循环的理解

/*********************************7***********************************/
// reg clk; reg rst_n;
// integer i;
// always @(posedge clk or negedge rst_n) begin
//     if(~rst_n)
//         begin
//             temp_c <= 1'b0;
//         end
//     else
//         begin
//             //不可综合 只是展开
//             for (i = 1; i<temp_b ; i=i+1) begin
//                 temp_c <= 1'b0;
//             end
//         end
// end
/*********************************************************************/

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值