hjr-FPGA:verilog HDL 编程与 testbench 设计
2016-07-04 23:00
363 查看
首先,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,还有实例化时端口连接要对应好
还有就是测试文件有两种写法,上面的是第一种,直接端口对应实例化,第二种与之主要区别是在程序最后把模块与测试文件分别实例化
微处理器一般和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,还有实例化时端口连接要对应好
还有就是测试文件有两种写法,上面的是第一种,直接端口对应实例化,第二种与之主要区别是在程序最后把模块与测试文件分别实例化
相关文章推荐
- 《FPGA嵌入式项目开发实战》
- 关于FPGA中的Logic Cells, Logic Slices, Configurable Logic Blocks and Gates
- DSP多网口开发板
- Utilities Zynq in a PL only configuration
- ARM+FPGA核心板
- DSP+ARM+FPGA核心板
- 基于VHDL的按键扫描程序
- Xilinx FPFA中LUT4_L 元件的使用
- ISE 综合面积报告分析
- 深圳嵌入式培训 修练软硬件之功 高薪一路相伴
- FPGA点灯
- 深圳视晶无线技术有限公司 狗血经历
- 卫星导航同步时的环路更新时间架构
- 载波同步环路的带宽与信噪比相关问题
- iverilog安装
- 如何解决NO EPCS LAYOUT DATA --- LOOKING FOR SECTION [EPCS-XXXXXX]
- FPGA基于CORDIC算法的求平方实现
- 应用matlab&modelsim设计FPGA算法(1)
- 《Xilinx可编程逻辑器件设计与开发(基础篇)》连载21:Spartan-6的时钟资源
- 阻塞与非阻塞(blocking and non-blocking)