FPGA/Verilog
赤子001
从事软硬件设计;FPGA实现,算法研究等,希望和各位同仁积极交流,共同提高,继续提高技术水平,管理能力,职业素养等
展开
-
商业级RISC-V 64位高性能处理器开源了
商业级RISC-V 64位高性能处理器开源了https://github.com/T-head-Semi/openc910https://github.com/rvboards/openc910原创 2021-10-19 13:43:36 · 588 阅读 · 0 评论 -
full case与parallel case
full caseparallel case作用指示综合器:case里没提到的状态不用管指示综合器:此case无优先级的概念使用这个选项可能的后果如果case不完全,那么仿真器会产生latch,而使用这个选项后综合器综合出来的电路不会有latch。导致仿真和综合结果不一致。如果此case有优先级转载 2017-11-25 19:02:37 · 623 阅读 · 0 评论 -
关于parallel_case和full_case的使用
总是想写点东西,区分一下synopsys parallel_case和full_case的使用方法,今天就写一点吧。在写RTL的时候,常常会用到CASE语句,但是case语句实际综合后,产生的逻辑变化比较多,parallel_case和full_case主要就是用来控制综合器把case语句综合成什么硬件逻辑。首先说说parallel_case。例子一:c转载 2017-11-25 19:01:34 · 3275 阅读 · 0 评论 -
verilog中case条件的表述问题
在case的分支中,分支条件之间用逗号。分支条件使用十进制的这种写法不能识别,会出错,case({a,b})6d'1_1: begin end6d'1_2: begin end要用二进制写法才可以6b'001_001: begin end6b'001_010: begin原创 2017-11-21 17:13:10 · 22799 阅读 · 3 评论 -
关于verilog中if与case语句不完整产生锁存器的问题
http://www.eefocus.com/guoke1993102/blog/14-04/302739_882d2.html在很多地方都能看到,verilog中if与case语句必须完整,即if要加上else,case后要加上default语句,以防止锁存器的发生,接下来就来说说其中原因。 一,什么是锁存器?锁存器与触发器的区别。 锁存器与触发器最大的区别在于,转载 2017-11-22 13:33:59 · 3708 阅读 · 2 评论 -
Verilog运算符优先级
如图:转载 2017-08-02 14:51:28 · 69932 阅读 · 4 评论 -
关于generate用法的总结【Verilog】
转载自http://www.cnblogs.com/nanoty/archive/2012/11/13/2768933.htmlAbtract generate语句允许细化时间(Elaboration-time)的选取或者某些语句的重复。这些语句可以包括模块实例引用的语句、连续赋值语句、always语句、initial语句和门级实例引用语句等。细化时间是指仿真开始前的转载 2017-11-13 17:42:23 · 3435 阅读 · 0 评论 -
如何深入理解verilog中“生成块(generate)”的概念
一般有两个作用。根据入参~判断这段程序是否使用。比如你的这个程序需要对N个设备支持~这N个设备只有一小部分代码不同,并且互相冲突。这个时候你用generate~就可以根据你的需要选择性的支持指定设备。第二个用途就是这一个模块我需要用n次~最麻烦的操作就是 复制n次代码用generate 就可以只用一段代码完成作者:Monster链接:https://转载 2017-11-13 17:38:47 · 6130 阅读 · 0 评论 -
xilinx和altera 资源对比
xilinx和altera 资源对比: 要比较Xilinx和Altera的FPGA,就要清楚两个大厂FPGA的结构,由于各自利益,两家的FPGA结构各不相同,参数也各不相同,但可以统一到LUT(Look-Up-Table)查找表上。LUT是FPGA(Field programmable Gate Array)的核心。仅就逻辑资源资源对比:LUT(分布式RAM)、FF(fli转载 2017-10-02 14:06:28 · 10129 阅读 · 0 评论 -
如何评估FPGA所需资源
作者:吴忠祥链接:https://www.zhihu.com/question/28949776/answer/42880106来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。1、虽然话不好听,但道理是这么个道理,没有任何经验就想做资源评估,把FPGA想的太简单了。这种情况下即便真的评估出来了,也未必就是FPGA水平强。2、经验不足的情况下更常用的做法转载 2017-10-02 13:30:29 · 3999 阅读 · 0 评论 -
verilog里同一个寄存器问什么不能在不同的always里分别操作?
为什么不让多个always里对同一个变量赋值呢,是如果允许会引起矛盾吗?先明白Verilog 是HDL ~verilog是一门硬件描述语言,请把它和软件编程语言区分开;写的代码不是逻辑,是电路。在遇到问题时,请从电路角度开始思考~always 语块是并行执行。简单想想: 它们Always哥几个一起同时去喂同一个女神吃东西,她吃什么?如何同时吃?如何都照顾原创 2017-10-17 16:23:19 · 5693 阅读 · 1 评论 -
ModelSim仿真入门之一:软件介绍
http://www.cnblogs.com/xd-elegant/p/4093645.html编写这个教程之前,为了让不同水平阶段的人都能阅读,我尽量做到了零基础入门这个目标,所有的操作步骤都经过缜密的思考,做到了详细再详细的程度。如果您是FPGA开发方面的初学者,那么这个教程一定能够帮助你在仿真技术上越过新人的台阶;如果您是FPGA开发的老手,这篇文档也并非对您没有帮助,您可以转载 2017-09-26 08:53:51 · 20532 阅读 · 1 评论 -
Verilog多维数组
http://blog.csdn.net/qp314/article/details/515727612.Verilog-2001多维数组Verilog-1995只允许一维数组,而Verilog-2001允许多维数组。 //1-dimensional array of 8-bit reg variables //(allowed转载 2017-07-29 10:46:38 · 27802 阅读 · 0 评论 -
小技巧1——verilog里面|的用法
在一段代码里面发现这样一句: scaled_integrator = integrator[31:16] + (integrator[31] & |integrator[15:0])不明白括号里面的&|连在一起用是个什么效果???答:|integrator[15:0]这个意思是按位或的意思,就是 integrator[15] | integrat转载 2017-08-12 18:51:07 · 2683 阅读 · 0 评论 -
Verilog数组初始化赋值
Verilog数组表示及初始化,以三维数组为例,二维及一维应该类似;reg [19:0] array1 [0:7][0:15][0:8]; //3维数组,用来存储梯度直方图always@(posedge clk or negedge rst_n)begin if(!rst_n) begin //array1 [0:7][0:15][0:8]原创 2017-07-30 23:21:48 · 36323 阅读 · 5 评论 -
Verilog中如何对数组赋值(存储器memory详解)
http://blog.sina.com.cn/s/blog_9424755f0101rhrh.html存储器是一个寄存器数组。存储器使用如下方式说明:reg [ msb: 1sb] memory1 [ upper1: lower1],memory2 [upper2: lower2],. . . ;例如:reg [0:3 ] MyMem [0:63]//My转载 2017-07-30 23:11:17 · 70626 阅读 · 5 评论 -
Verilog数组表示及初始化
这里的内存模型指的是内存的行为模型。Verilog中提供了两维数组来帮助我们建立内存的行为模型。具体来说,就是可以将内存宣称为一个reg类型的数组,这个数组中的任何一个单元都可以通过一个下标去访问。这样的数组的定义方式如下:reg [wordsize : 0] array_name [0 : arraysize]; 例如:reg [7:0] my_memory [0:255]转载 2017-07-30 22:39:15 · 24179 阅读 · 1 评论