
练级——FPGA
文章平均质量分 51
RonaldoM要努力
努力学知识
展开
-
FPGA——串口接收
fpga串口接收原创 2022-07-03 12:11:01 · 804 阅读 · 1 评论 -
FPGA——串口发送(第二版)
串口发送原创 2022-06-07 15:27:31 · 646 阅读 · 0 评论 -
FPGA——8位串口发送(第一版)
初识FPGA串口输出原创 2022-06-07 11:38:44 · 772 阅读 · 1 评论 -
受控线性序列机
题目:有一个中的周期信号(此处为10ms),在该10ms中定义了led的8个状态,其中每个状态为0.1ms。即在周期为10ms的程序中,前0.8msled根据控制亮灭,0,8ms到10ms这一段led灭首先是一段错误代码`timescale 1ns / 1psmodule ledflash4( input clk, input rest, input [7:0]ctrl, //8种状态定义 // input [31:0]T, //总的周期时间 input原创 2022-05-29 18:02:43 · 256 阅读 · 0 评论 -
Verilog【parameter的使用】——不同频率的led
此前描述了一个控制8位led交替闪烁的程序。因此,提出改变时间来达到不同频率的目的。最简单的方法是改变每一个led的时间参数。但这样做非常麻烦而且易错。因此提出一个parameter的参数(类似于c里的define,但在此处可以随意修改变量)。代码如下:testbench`timescale 1ns / 1psmodule t_tb(); reg clk; reg rest; wire [2:0]led;led_run8 led_run8( .clk(clk)原创 2022-05-25 21:29:15 · 687 阅读 · 0 评论 -
Verilog——驱动8位led
用verilog编写一个以0.5s交替循环的8个led程序模拟驱动程序led_testbench`timescale 1ns/1nsmodule led_tb(); reg clk; reg rst; wire [7:0]LED; ledX led( .clk(clk), .rest(rst), .led(LED) );//例化,记得加标签ledX led();不同的led用不同的X原创 2022-05-25 19:30:44 · 984 阅读 · 0 评论 -
verilog——三八译码器
三八译码器`timescale 1ns / 1psmodule three28( a, b, c, out ); input a; input b; input c; output reg [7:0] out;//always里赋值必须是reg型 //always描述的信号赋值,赋值对象必须是reg类型 always@(*) begin case({a,b,c})原创 2022-05-25 18:59:23 · 8074 阅读 · 0 评论 -
Vivado流程顺序(初稿)
刚开始接触FPGA,之前上过几节CPLD的课程,算是稍微的了解过一些。最近开始上手Vivado来熟悉verilog和FPGA。刚开始有些凌乱,操作有些多,一时间记不太清具体步骤,一次打算写一个博客来记录vivado操作流程,以便后面方便翻阅。第一次写流程可能有些错误,后面会改进。软件版本:vivado 18.3创建工程添加源文件:Setting的Add sources→Add or create design sources(注意源文件命名不能以数字开头)编写源文件程序分析和综合原创 2022-05-15 21:28:31 · 2081 阅读 · 0 评论 -
verilog——数据类型及其常量、变量和赋值
VerilogHDL中总共有19种数据类型。数据类型是用来表示数字电路硬件中的数据储存和传送元素的。它们是:reg型、wire型、integer型和parameter型(最基本的四种)以及large型、medium型、scalared型、time型、small型、tri型、trio型、tril型、triand型、trior型、trireg型、vectored型、wand型和wor型。1.常量1.数字整数:有二进制(b或B)、十进制(d或D)、十六进制(h或H)、八进制(o或O)四种表示方式。原创 2022-05-13 15:27:19 · 8215 阅读 · 0 评论 -
关于阻塞和非阻塞赋值的理解
图1关于阻塞(蓝)和非阻塞(红)赋值的代码图二testbench模拟输入和输出,并例化如图1所示蓝,“=”表示阻塞赋值,即将等号右侧的值确定后再赋给等号左侧。而图1所示红,“<=”则表示在always执行前(此处为上升沿到来前)已经确定好“<=”右侧的值,而当上升沿到来时,就立刻将值赋给左侧。如时序图所示:-阻塞赋值: 当上升沿到来时,a=0,b=1。然后将其赋给m1,当m1得到值以后又立刻赋值给y1非阻塞赋值:当上升沿到来之前,a=0,b=1,m2=0。在上升沿到来时,将提前.原创 2022-05-12 19:58:44 · 621 阅读 · 0 评论