- 博客(7)
- 收藏
- 关注
原创 FPGA实现uart串口协议
reference:正点原子视频教程具体代码请参考B站正点原子官方UART串口通信原理是一种采用异步串行通信方式的通用异步手法传输器。因为是异步通信所以,使用的时候要进行同步到系统时钟下,不然会出现亚稳态具体代码如下:/下降沿的抓取assign state_flag = uart_rx_d1 && (~uart_rx_d0);//异步数据同步到系统时钟下//如果不这样做会出现亚稳态的情况always @(posedge sys_clk or neged
2021-07-03 17:13:36
787
转载 Verilog关于例化多个块的说明
因为在always中不能进行例化,因为always中要生成确定的电路。所以不能使用for对多个块进行例化。verilog中为我们提供了一个块复制的语句。关于generate,转载:https://blog.csdn.net/qq_38428056/article/details/84821982一、为什么学习generate?在设计中,很多情况下需要编写很多结构相同但是参数不同的赋值语句或者逻辑语句,如果在参数量很大的的情况下,原本的列举就会显得心有余而力不足。c语言中常用for语句来解决此类问
2021-06-26 17:13:34
9893
3
原创 一定要加上初始值呀!!!!!!!!
out = 8'b0000_0000;module top_module( input [254:0] in, output [7:0] out ); reg [8:0] i; always @(*) begin out = 8'b0000_0000; for(i = 9'b0_0000_0000 ; i < 9'b0_1111_1111 ; i = i + 1'b1) begin if(in[i] ==
2021-06-26 15:07:28
109
原创 Verilog中的integer类型
Given a 100-bit input vector [99:0], reverse its bit ordering.说明:整数(integer)integer类型也是一种寄存器数据类型,integer类型的变量为有符号数,而reg类型的变量则为无符号数,除非特别声明为有符号数,还有就是integer的位宽为宿主机的字的位数,但最小为32位,用integer的变量都可以用reg定义,只是用于计数更方便而已。reg,integer,real,time都是寄存器数据类型,定义在Veril.
2021-06-24 15:38:09
34890
原创 verilog中不同位数的值之间的异或操作
module top_module( input [31:0] a, input [31:0] b, input sub, output [31:0] sum); //内部信号 wire q1; wire [15:0] sum1,sum2; wire [31:0] b1; //先把少数位数的值进行扩展,然后在进行按位进行异或 assign b1 = ((b & (~{32{sub}})) | ((~b) & {32.
2021-06-22 16:53:50
3438
1
原创 verilog中的为扩展
位扩展需要考虑第一位为符号位的问题/*Build a circuit that sign-extends an 8-bit number to 32 bits. This requires a concatenation of 24 copies of the sign bit (i.e., replicate bit[7] 24 times) followed by the 8-bit number itself.*/module top_module ( input [7:0].
2021-06-20 21:52:28
400
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人