速通systemverilog

一、systemverilog的大部分新语法

logic

在这里插入图片描述

always_comb

在这里插入图片描述

unique_case

在这里插入图片描述

priority case

case中常量和变量互换位置
在这里插入图片描述

always_ff

在这里插入图片描述

typedef

在这里插入图片描述

struct

在这里插入图片描述

enum

在这里插入图片描述

union

要求数据一样长
在这里插入图片描述

interface

在这里插入图片描述

二、实现流水灯

module ShiftRegister(
  input logic clk,
  input logic reset,
  output logic [7:0] leds
);
  logic [7:0] shift_reg;

  always_ff @(posedge clk or posedge reset) begin
    if (reset)
      shift_reg <= 8'b00000001;
    else
      shift_reg <= {shift_reg[6:0], shift_reg[7]};
  end

  assign leds = shift_reg;

endmodule

nios2_flow_led

三、全加器以及仿真

module FullAdder(
  input logic a,
  input logic b,
  input logic cin,
  output logic sum,
  output logic cout
);
  assign sum = a ^ b ^ cin;
  assign cout = (a & b) | (cin & (a ^ b));
endmodule

module FullAdderSimulation;
  logic a, b, cin, sum, cout;
  
  FullAdder dut (
    .a(a),
    .b(b),
    .cin(cin),
    .sum(sum),
    .cout(cout)
  );
  
  initial begin
    $dumpfile("full_adder.vcd");
    $dumpvars(0, FullAdderSimulation);
    
    // Test case 1: a=0, b=0, cin=0
    a = 0; b = 0; cin = 0;
    #10;
    
    // Test case 2: a=1, b=0, cin=1
    a = 1; b = 0; cin = 1;
    #10;
    
    // Test case 3: a=1, b=1, cin=0
    a = 1; b = 1; cin = 0;
    #10;
    
    // Test case 4: a=1, b=1, cin=1
    a = 1; b = 1; cin = 1;
    #10;
    
    $finish;
  end
endmodule

在这里插入图片描述

https://www.bilibili.com/video/BV1XA41177of/

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值