1. Verilog的运行方式 - 模型 + 测试 (Epicsim/Iverilog)

一阴一阳之谓道 《易经》

0 介绍

Verilog的功能有两个:

  1. 模拟硬件
  2. 测试的模拟的硬件

1.0 verilog模型框架

Verilog是一门可以来描述硬件的语言。
硬件有几个层面:

  1. 物理 - 材料的模型,如半导体,化学等等
  2. 电路 - 场效管/晶体管/mosfet的模型
  3. 逻辑门 - 与/或/异或门的模型
  4. 行为 - 数学公式的模型

Verilog可以模拟2-4,同常用的是在3-4的层面。
物理的模拟就得用其它的工具了,如hspice。这里就不赘述了。

以下会有一些列子。它们都是为了描述一个非门。

1.1 电路模型

module fei_dianlu(input jia, output yi);
   	nmos(yi, 0, jia);
   	pmos(yi, 1, jia);
endmodule;

1.2 逻辑门模型

module fei_men(input jia, output yi)
	NOT(yi, jia);
endmodule;

1.3 行为模型

module fei_xingwei(input jia, output yi);
	assign yi = ~jia;
endmodule

此三个模块都有同样的效果。不同任务就需要用不一样的模型编写方式。

2.0 verilog仿真框架

Verilog不仅可以描述硬件,也可以直接的测试它。

当然,也有一些工具如verilator 可以将verilog变成C++,然后用C++来测试。为了方便和容易上手,这里只会用verilog原生的测试框架来进行测试。

就是说,verilog可以用来,

  1. 模拟硬件
  2. 写测试的代码

前者已经讨论了,后者就在以下来讨论一下。

2.1 测试框架

测试框架如同C/Java的入口函数。

module main;

	initial begin
		//测试代码
	end
endmodule

比如说,

module main;

	initial begin
		$display("nihao! hello world!");
		$finish;
	end
endmodule

3.0 合并模型和测试框架

有了模型和测试框架两者,就可以运行了。

如以下的文件fei.v,

//模型
module fei_xingwei(input jia, output yi);
	assign yi = <
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值