文章目录
- 背景
- 一、米联客verilog篇笔记
-
- 1、为什么要推出vivado
- 2、状态机,软核的理解
- 3、always @的含义与 @()
- 4、条件运算符
- 5、阻塞逻辑和非阻塞逻辑混用
- 二、xilinx官方DOC
- 三、常用TestBench模板
-
- 1、如何产生外部触发信
- 2、task的用法
- 3、wait与@
- 四、EDA先锋工作室笔记
-
- 1、define
- 2、逻辑值
- 3、常量
- 4、寄存器与存储器
- 5、线 与寄存器
- 6、verilog中的三种描述方式
- 7、begin end与fork join
- 8、if else 与case
- 五、vivado的基本使用
-
- 1、创建工程
- 2、语法参考language templates与IP catalog
- 3、RTL详细描述和分析
- 4、综合及资源 告
- 4、实现implement
- 5、时序约束
- 6、IO管脚分配
- 7、仿真
-
- 1、vivado simulator以及操作技巧
- 2、基于modelsim的仿真(避免重复Xilinx编译库)
- 8、烧写下载、固化程序
-
- 1、生成bit文件
- 2、固化程序
- 福利链接
背景
一件事情,只有迈出了第一步,才会有第二步,永远迈不出第一步,那么就永远停留在原点,毕竟距离毕业还有一年时间,我觉得明年这个时候,我应该已经掌握了常用的XILINX IP使用,以及仿真等使用了,此外对verilog这种语言也会有更深一步的认识。
本篇文章是对verilog语言的全新认识,适用于有了基础后,想从语法联系到电路,这样才能对verilog有一个比较深刻的认识。
一、米联客verilog篇笔记
1、为什么要推出vivado
推出Vivado 是为了提高设计者的效率,硬件进入了28nm时代,软件的设计也要提升,它能够显著增加Xilinx的28nm工艺的可编程逻辑器件的设计、
综合与实现效率,所以,vivado目前只支持xilinx的28nm工艺的7系列FPGA,包括V7,K7,A7,ZYNQ。另外值得注意的是ISE 14.7是支持全系列的Xilinx family的。
4、条件运算符
A=B:D 是一个条件运算符,含义是如果B为TRUE,则把C连线A,否则把D连线A,通常B是一个条件判断,用小括弧括起来:
assign c1_clk =(c1==25’d24999999):0;
5、阻塞逻辑和非阻塞逻辑混用
always @ (posedge clk)
begin
A=1’b1; //阻塞逻辑
B end
看到上面这个程序是阻塞与非阻塞的混合使用,一般教材是极力反对这种写法的,但有时候这种用法还能帮上大忙,只不过,不理解的话乱用会导致时序违规。当时钟上升沿来临的时刻,首先A会被置1,然后B寄存器再置1.区别就是A和B不再同时置位1。A要比B提前零点几纳秒,这样就出现了先后顺序。这个过程还是在一个时钟内完成的,但是数据到达B寄存器相比非阻塞逻辑,晚了那么零点几纳秒。
二、xilinx官方DOC
三、常用TestBench模板
1、如何产生外部触发信
很多时候我们需要外部触发信 来产生激励,我们可以采用forever语句来产生占空比非50%的脉冲。
- 产生任意占空比的外部触发信
- 产生脉冲个数固定的脉冲信
repeat函数。将程序执行n次
3、wait与@
8、if else 与case
if else语句是有优先顺序的,如果第一级是关键路径的话,就可以利用这样的优先级编码提高设计性能。
case语句中,所有被判断的分之条件都具有一样的优先级。
在always模块内,逻辑是按照指定的顺序执行的。always块中的语句称为顺序语句,因为他们是顺序执行的,请注意,两个或多个的always模块也是同事执行的,但是模块内部的语句是顺序执行的,看一下always内的语句,你就会明白它是如何实现功能的。if,,,else,,,if必须顺序执行,否则其功能就没有任何意义。如果else语句在if语句之前执行,功能就不符合要求。
五、vivado的基本使用
1、创建工程
对于vivado FPGA工程师来说,这些代码永远值得参考学习,永远值得敬畏,永远值得温习,学习,从而改进自己的代码风格。
下图的IP catalog也是一个非常有用的工具,包含了所有的IP,我们可以根据这个目录去学习一些常用的IP核。
3、RTL详细描述和分析
详细描述(Elaboration)是指将RTL优化到FPGA技术。在基于RTL的设计中,详细描述是第一步,当设计者打开一个详细描述的RTL,设计者可以查看RTL结构、语法和逻辑定义。分析和 告能力包括:
RTL编译有效性和语法检查;
表和原理图研究;
设计规则检查;
使用一个RTL端口列表的早期IO引脚规划;
在RTL视图中,选择一个对象,右击,出现浮动菜单。在浮动菜单内,选择go to source 选项,将自动跳转到定义该对象源代码的位置。
上面箭头的Nets代表连线
leaf cells代表对象
4、综合及资源 告
而X家的CLB如下:
7、仿真
1、vivado simulator以及操作技巧
通过点击add sources,可以增加仿真文件
仿真文件
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!