hjr-FPGA:verilog HDL 编程与 testbench 设计

首先,FPGA可以做两种类型的芯片,数字电路与微处理器

微处理器一般和SOPC片上系统(就是把微处理器和一些片内外设都集成到了一块芯片上)一起做,比如NIOS-II,这些之后再说

数字电路分为:

组合逻辑电路(各种与或非门组成的电路,输出只取决于当前输入),如编译码器,加法器

时序逻辑电路(具有记忆功能,触发器),如计数器,移位器,分频器

时序逻辑电路又分为同步与异步,同步电路只有一个时钟源,所有的触发器同时被触发,异步相反,触发时间有先后

常用的数字电路语言有两种VHDL与verilog HDL,verilog HDL用的比较多也更简单,我们先说verilog HDL

首先说下时序电路

先说下Verilog HDL程序结构

分为模块程序与测试程序(testbench),每个模块程序实例化后就是一个元件,测试程序就是把所有可能的输入都模拟一遍,观看结果

模块程序(module)

 

module test(X,Y,Z,S,CO)//module 模块名(端口1,端口2,......);
input X,Y;//输入输出端口声明
output Z;
wire S,CO //wire reg等各类型变量声明
assign S = X&Y//逻辑、功能描述
endmodule//结束

 

测试文件(testbench)

 

.itimescale 1ns/100ps//一个时间单位1ns,精度100ps
module 模块名加上,_tb(x,y,z)
端口类型 
reg//输入激励端口
wire//输出端口
halfadder u1(.X(x),.Y(y),.Z(z));//实例化器件与testbench端口连接
initial
begin
初始化输入端,eg x=0;y=0;z=0;
//输入端加入激励信号,穷举描述 #延迟时间 begin 输入激励信号赋值;eg  #10 x =1;
end
赋初值,遍历各种可能
end module

上面是程序的模板
 

 

需要注意的是,模块文件里的输入输出到了测试文件里,要相应的改为reg与wire,还有实例化时端口连接要对应好

还有就是测试文件有两种写法,上面的是第一种,直接端口对应实例化,第二种与之主要区别是在程序最后把模块与测试文件分别实例化

 

 

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

架构师小侯

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值