verilog随记
icrookie
这个作者很懒,什么都没留下…
展开
-
SDRAM小记
一、知识点存储单元主要由列选通三极管、存储电容、刷新放大器组成。SRAM(异步静态随机存储器)要正确存储一位数据,需要最少6个晶体管,因此,从芯片面积上来说,单片SRAM芯片的容量不可能做到很高。工作电压:SDRAM的工作电压是3.3V,DDR的工作电压是2.5V,DDR2的工作电压是1.8VHY57V281620 芯片,容量128Mbit,数据位宽16bit,具有4个BANK,每个BANK存储32MBit的数据。每个BANK由4096*512个存储单元组成,每个存储单元存储16bit数据。控制原创 2020-09-09 19:25:24 · 413 阅读 · 0 评论 -
门控时钟
一、带锁存器的门控时钟module geta_clk( input clk, input enable, output gclk ); reg l_clk; always@(clk or enable) if(!clk) l_clk<=enable; assign gclk=l_clk&clk;综合电路如图所示,就是我们想要的门控时钟二、载入-使能结构module test( input clk,原创 2020-08-06 14:25:27 · 649 阅读 · 0 评论 -
乘法实现
module test( input [3:0] qa, input [3:0] qb, output [7:0]result );integer i;reg [7:0]result_r;assign result=result_r;always@(qa,qb,result)begin result_r=0; for(i=0;i<=3;i=i+1) begin if(qa[i]) result_r=result_r+(qb<<原创 2020-08-08 22:44:31 · 223 阅读 · 0 评论 -
verilog实现半加器和全加器
//描述:用verilog实现半加器,再用半加器实现全加器//==================================<半加器>==========================================================module half_adder( input a, input b, output sum,原创 2020-07-19 15:22:55 · 6144 阅读 · 2 评论 -
verilog实现 斐波那契数列的生成
斐波那契数列的当前数值等于前两个数值相加之和,即Xn=Xn-1+Xn-2;数据为0,1,1,2,3,5,8,13,21,34…module fibonacci_number( input clk, input rst_n, input [15:0] number_eth, //要求出的斐波那契数的排号原创 2020-07-19 15:02:34 · 1972 阅读 · 0 评论 -
FPGA的乘法运算
概述当前的FPGA中一般都集成了硬件资源乘法器,我们可以在IP CORE 里调用,也可以直接在HDL里直接用"*"来实现乘法,EDA工具会自动综合成乘法器。一、无符号数乘法对于无符号数乘法,需要扩宽结果的位数,比如两个4位无符号数相乘,结果是8位的。reg [3:0]a;reg [3:0]b;output reg [7:0]c;always@(posedge clk or negedge rst_n)if(!rst_n) begin c<=8'd0;原创 2020-06-29 10:30:42 · 8452 阅读 · 1 评论 -
CRC学习总结
一、CRC计算过程概述对于每一种CRC校验,都有一个生成多项式,如CRC-8校验,ploy=x8+x2+x1+1,无论哪一种CRC校验,其最高幂次位和最低位的因数都是1.用一段二进制数表示上式:1_0000_0111,由于CRC计算时最高位1与seed最高位计算时钟为0,会自动消去,因此一般把对高位舍去,写成0x07,但是手动计算时还是要把这个1加上。对于待校验的数据seed,先在其后面部k个0(k为生成多项式的最高次幂),然后将得到的数据和生成多项式异或,直到除尽,舍去商,得到的余数(位宽等于原创 2020-06-26 21:21:57 · 2917 阅读 · 1 评论 -
verilog 中if语句和case语句综合成的电路
先做一句话总结,if语句和组合逻辑下的case语句,他们的条件是有优先级的,从上到下优先级递减,每多一个条件就会多消耗一个二选一多路器,很浪费资源;而对于时序语句中的case,会被综合成n选一多路器,条件没有优先级,占用的资源更少。always_comb if(sel=2'b11) d=a; else if(sel=2'b10) d=b; else d=c; endcase always_comb ca原创 2020-06-12 09:32:41 · 14494 阅读 · 0 评论