Verilog编程知识
各种Verilog编程小知识小技巧
虹科FPGA
虹科FPGA致力于更好的FPGA、SoC以及ASIC开发调试,简化复杂设计的调试流程,大幅缩短开发周期,提高AXI总线利用率。并提供适用于人工智能以及边缘计算的高速处理FPGA开发板(50mm×40mm),支持Ubuntu Linux LTS,ROS,实时操作系统(ThreadX、QNX、FreeRTOS),Xilinx Vitis IDE(Python, C, C++, VHDL, Verilog),通用机器学习(ML)框架(Tensorflow、Caffe),加速库(视觉、数据、DSP、AI)。
展开
-
Verilog编程之条件编译命令`ifdef
简述用Verilog编程经常会碰到有时候会有不同的条件约束,或者自己尝试设计时不想删掉原来可能已经成功但是需要优化的代码,一般情况下都是直接//或者/*给注释掉方便以后查看和修改。直到我发现条件编译命令`ifdef这种好东西,顺带还强化了解了一波宏指令。宏定义`define、宏调用`include。条件编译命令`ifdef// `define KC705 // 7 Series Kintex differential clock=6.4 ns period, 156.250 MH原创 2020-09-10 09:59:43 · 1467 阅读 · 0 评论 -
verilog语言中的综合与不可综合
(1)所有综合工具都支持的结构:always,assign,begin,end,case,wire,tri,aupply0,supply1,reg,integer,default,for,function,and,nand,or,nor,xor,xnor,buf,not,bufif0,bufif1,notif0,notif1,if,inout,input,instantitation,module,negedge,posedge,operators,output,parameter。(2)所有综合工具都不转载 2020-09-09 10:00:09 · 1749 阅读 · 0 评论 -
Verilog中#的另一种用法:模块外定义常参#(parameter ...)以及调用时修改参数#(10,2)
简介Verilog中用parameter 常参名(一般全大写) 常数语句来定义常参,parameter的位置也比较灵活,本文主要介绍一种在model的描述代码块外定义的常参。例子如下:module exam_prj#(parameter WIDTH=8) //端口内的参数只能在这定义(input [WIDTH-1:0] dataa,//[WIDTH-1:0]input [WIDTH-1:0] datab,output reg [WIDTH:0] result);Parameter原创 2020-09-08 10:50:07 · 10932 阅读 · 2 评论 -
Verilog编程技巧之(括号)、[中括号]、{大括号}用法(对比matlab)
简述在初步接触到Verilog的括号时经常会将其和matlab矩阵的各种(括号)、[中括号]、{大括号}搞混。Verilog中括号的应用Verilog语言中,除去这些括号在计算优先级中的作用(一般也只会用到小括号加优先级)。(括号)主要用于函数模块传参,例如自定义函数 fuc_name后面括号内定义的input、output,或者一些if、always语句后面括号内添加判定信息(其实也就是函数传参)。[中括号]用于位数声明,例如定义reg信号的位数,或者调用某信号的位数:reg [7:0]原创 2020-09-07 14:10:08 · 10388 阅读 · 1 评论 -
Verilog位运算&和|
简述区别于逻辑运算的逻辑与(&&)和逻辑或(||),Verilog编程语言中位运算:按位与(&)和按位或(|)的用途反而更广一些,因为通常是将需要逻辑与或的两个数据量组合成一个信号,就可以一定程度上避免数据依赖,同时也便于信号观测。不同信号间的 按位与(&)按位或(|)不同信号间的位运算比较灵活,没必要两边保持同样的位数,一般低位的未定义位会自动补0,例如一个8位的信号和一个1位信号按位与,即只会改变前者的最低位信号。reg [7:0] GPIO_SW_W_原创 2020-09-03 10:16:22 · 20041 阅读 · 0 评论