自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(36)
  • 收藏
  • 关注

原创 《Perl语言入门》读书笔记(六)正则表达式

1.序列匹配$_ = "yabba dada ddad";if(/dada/){ print"It matched!\n"; #在//中的值与$_相匹配}在匹配中不会忽略空白字符,需要注意。2.通配符点号.能匹配出换行符外的任意单个字符:$_ = "yabba dada ddad";if(/da.a/){ print"It matched!\n"; #.能与任意单个字符匹配3.量词可以使用量词知道你匹配项的重复次数:正则表达式量词及对应的广义

2021-03-27 16:42:10 186

原创 《Perl语言入门》读书笔记(六)哈希

1.定义哈希哈希是一种数据结构,与数组相同点,能容纳任意多的值;而哈希的检索方式与数组不同。数组是以数字下标检索,而哈希中的值(value)以唯一的名字(key)检索。key-value一一对应:乱序排列,类似一桶数据:...

2021-03-27 15:07:41 245

原创 《Perl语言入门》读书笔记(五)输入与输出

1 读取标准输入使用<STDIN>操作符进行标准输入chomp($line = <STDIN>); #截掉换行符2.输出到标准输出print操作符会读取他后面的参数列表中的所有元素,并把每一项依次送到标准输出。print @array; #输出数组元素 , 不会含有空格 ,输出(fredbarybetty)print "@array"; #打印一个字符串,输出(fred bary betty)print <>;

2021-03-26 14:08:26 212

原创 《Perl语言入门》读书笔记(四)子程序

1 子程序1.1 定义子程序使用关键字sub开头,在写上子程序名(字母、数字和下划线组成,不能以数字开头),大括号框柱子程序主体。子程序可以定义在文件的任意位置,为了方便代码阅读,一般建议放在开头或结尾处。sub marine{ $n += 1; #全局变量 print"Hello,sailor number $n!\n";}1.2 调用子程序在任意表达式中,子程序名前加与号(&),表示调用这个子程序。&marine; #调用前面的子函数1.

2021-03-26 11:03:27 291 2

原创 《Perl语言入门》读书笔记(三)列表与数组

目录一、列表与数组简介二、数组列表与元素1.访问数组中的元素2.特殊的数组索引3.列表直接量4.qw简写5.列表的赋值三、数组操作符1.pop和push操作符2.shift和unshift操作符3.splice操作符4.字符串中的数组内插5.foreach控制结构6.Perl的默认变量:$_7.reverse操作符8.sort操作符9.each操作符四、标量上下文与列表上下文1.介绍2.在标量上下文中使用产生列表的表达式..

2021-01-21 21:49:30 280

原创 《Perl语言入门》读书笔记(二)标量数据

标量数据是Perl中最简单的一种数据,绝大部分标量是数字和字符串,大多情况下,这两者可以相互转换。一、数字1.数字内容格式 Perl中所有数字的内部格式相同,无论整数还是浮点数,均以双精度浮点数的要求来保存数字并进行运算。2.浮点数直接量 直接量指某个数字在Perl源代码中的写法,是直接键入程序源代码中的数据。 例:-12.5e-24 (负12.5乘以10的负24次方)3.整数直接量 例:4546543213216165 ...

2021-01-18 16:57:30 318

原创 《Perl语言入门》读书笔记(一)Perl简介

Perl是一种简洁方便的脚本语言,在数字芯片设计验证中会经常用到的一种脚本语言

2021-01-18 11:37:38 209

原创 《硬件架构的艺术》读书笔记(六)流水线的艺术

6.1 流水线的介绍首先,根据现在对高速ASIC的需求,使用流水线技术来提升每个周期的数据吞吐率,但也会带来面积和系统延迟的问题。流水线:通过在较长的组合逻辑路径中插入寄存器,降低了组合逻辑的延迟,增加了时钟频率并提高了性能。如下:组合逻辑的最大路径被分割,大幅降低组合逻辑时延6.2 影响最大时钟频率的因素时钟频率是数据流入系统后在输出端出现的速率。两条流水线之间的理想路径如下:关键时间参数为: Tcomb(组合逻辑时延) ,Tsetup(建立时间),...

2020-12-14 17:42:37 1637

原创 《硬件架构的艺术》读书笔记(五)低功耗设计

第五章:低功耗设计5.1功耗源浪涌、静态功耗和动态功耗是主要的功耗源。1)浪涌电流指的是上电后的初始化电流,一般是正常工作电流的数倍;2)静态功耗指在关断主电源或进入待机模式下的产生的电流,其中包括晶体管漏电流功耗;3)动态功耗:指门电路进行切换时,由逻辑转换产生的功耗;动态功耗由下面等式定义:Pdynamic = S CL Vdd fclk其中CL指寄生电容,fclk指时钟频率,S指每个时钟通过整个电路的翻转次数,Vdd为供电电压...

2020-11-29 20:57:12 1522

原创 HDLBits练习(九)有限状态机1

1.实现以下状态机(高电平异步复位,单输入单输出)module top_module( input clk, input areset, // Asynchronous reset to state B input in, output out);// parameter A=0, B=1; reg state, next_state; always @(*) begin // This is a combination

2020-11-25 19:00:22 244

原创 HDLBits练习(八)移位寄存器附加题

1.rule90module top_module( input clk, input load, input [511:0] data, output [511:0] q ); integer i; always @(posedge clk)begin if(load)begin q <= data; end else begin for(i

2020-11-24 15:25:58 620

原创 《硬件架构的艺术》读书笔记(四)跨时钟域传输

第3章:处理多个时钟3.1跨时钟域数据传输简介主要难点:1.满足建立时间和保持时间条件;2.避免产生亚稳态;建立时间:在时钟脉冲到来前,输入数据需要保持稳定的时间。保持时间:在时钟脉冲到来后,输入数据仍需保持稳定的时间。(即输入数据在时钟触发沿前后均需要保持稳定相应的时间)3.4多时钟设计的处理技术1.时钟命名法:系统时钟:sysy_clk,发送时钟:tx_clk,接收时钟:rx_clk同一时钟域的时钟也应当使用相同的前缀:如sys_...

2020-11-23 21:40:45 596

原创 HDLBits练习(七)移位寄存器

1.构建一个四位移位寄存器module top_module( input clk, input areset, // async active-high reset to zero input load, input ena, input [3:0] data, output reg [3:0] q); always@(posedge clk or posedge areset)begin if(areset)beg

2020-11-23 10:07:22 650

原创 《硬件架构的艺术》读书笔记(三)时钟和复位

5.门控时钟方法学传统设计中功耗主要来自三个部分;1)在每个时钟沿变化的组合逻辑产生的功耗;2)所有触发器产生的功耗(无论是否变化);3)设计中时钟树的功耗。其中时钟树的功耗占50%左右,所以使用门控时钟能有效的降低功耗,并且最好在时钟树的根部查产生或关闭时钟。(1)不含锁存器的时钟门控电路多用使能信号(EN)与时钟信号通过与门、或门相连后输出时钟信号。为了避免毛刺,需要保持使能信号在时钟上升沿到时钟下降沿的过程中保持不变。(...

2020-11-20 17:07:48 369

原创 《硬件架构的艺术》读书笔记(二)时钟和复位

第2章:时钟和复位1.经验表明对ASIC的时域控制最安全的方法就是同步设计。2.易发生时序错误的情况(不推荐使用):(1)避免使用行波计数器,使用触发器输出做时钟输入端,会引发延时。(2)门控时钟会导致时钟偏移,并且综合时容易出错。(clk_in = en & clk)(3)双边沿或混合边沿触发时钟,对同步复位,DFT,关键路径确定带来难度。(4)用触发器驱动另一个触发器额异步复位端,第二个触发器输出不仅仅受到时钟...

2020-11-19 13:59:34 402

原创 HDLBits练习(六)计数器

1.4位计数器module top_module ( input clk, input reset, // Synchronous active-high reset output [3:0] q); always@(posedge clk)begin if(reset) q <= 4'd0; else q <= q + 1'b1; end

2020-11-18 20:19:47 296

原创 HDLBits练习(五)锁存器和DFF

1.创建具有高电平有效同步复位的8 D触发器。触发器必须重置为0x34而不是零。所有DFF应由clk的负边缘触发。module top_module ( input clk, input reset, input [7:0] d, output [7:0] q); always@(negedge clk)begin if (reset) q <= 8'h34; //0x指十六进制 else

2020-11-17 20:33:39 893

原创 《硬件架构的艺术》读书笔记(一)亚稳态

第1章:亚稳态1.亚稳态来源:是由于违背了触发器的建立和保持时间而产生的。2.在同步时序电路中发生概率较小,在异步时序电路中发生概率较大,这是由于时钟和数据关系在异步时序电路中不固定。3.数据信号在时钟沿到来的建立保持时间窗口中应当保持稳定。4.产生亚稳态可能的条件:1.输入信号是异步信号;2.时钟偏移/摆动(上升/下降时间)高于容限值;3.信号在不同频率或同频率不同相位和偏移的跨时钟域传输;4.组合逻辑延迟使得数据信号在窗口变化。5.解决方法:...

2020-11-17 15:07:58 442

原创 HDLBits练习(四)卡诺图电路

1.如下://d为无关项module top_module( input a, input b, input c, input d, output out ); assign out = a & c | ~a & ~b & c | a & ~c & ~d; endmodule2.如下:module top_module( input a, input b,

2020-11-16 22:46:24 608

原创 HDLBits练习(三)多路复用器,算术电路,卡诺图电路

1.创建一个1位宽的2比1多路复用器。当sel = 0时,选择一个。当sel = 1时,选择b。module top_module( input a, b, sel, output out ); endmodule2.创建一个100位宽的2比1多路复用器。当sel = 0时,选择一个。当sel = 1时,选择b。module top_module( input [99:0] a, b, input sel, output [99:0] out

2020-11-15 22:10:30 900

原创 HDLBits练习(二)

1.“高电平计数”电路对输入向量中的“ 1”进行计数module top_module( input [2:0] in, output [1:0] out ); //列出真值表 assign out[1] = in[2] & in[1] | (in[2] ^ in[1]) & in[0]; assign out[0] = in[2] ^ in[1] ^ in[0];endmodule连续赋值语句assign 与组合逻辑的alw

2020-11-14 22:34:15 117

原创 HDLBits练习(一)

一、模块:层次结构1、实例调用将信号连接到模块端口有两种常用的连接方法:按位置或按名称。通过位置将连接线连接到端口的语法应该很熟悉,因为它使用类似c的语法。在实例化模块时,根据模块的声明从左到右连接端口。例如:mod_a instance1 (wa, wb, wc);它实例化一个mod_a类型的模块,并给它一个实例名“instance1”,然后将信号wa(新模块外部)连接到新模块的第一个端口(in1),将wb连接到第二个端口(in2),将wc连接到第三个端口(out)。这种语法的

2020-11-12 20:27:42 242

原创 FPGA学习日记(十)ZYNQ的GPIO—INTERRPUT接口控制

GPIO中断控制LED亮灭,vivado设置与GPIO_MIO相同,SDK软件的main.c代码如下:#include "stdio.h"#include "xparameters.h"#include "xgpiops.h"#include "sleep.h"#include "xscugic.h"#define GPIO_DEVICE_ID XPAR_XGPIOPS_0_DEVICE_ID#define MIO0_LED 0 //核心板上PS端的LED#de

2020-09-20 15:55:21 647

原创 FPGA学习日记(九)ZYNQ的GPIO—MIO接口控制

一、GPIO简介在ZYNQ中,PS端的引脚资源ZYNQ PS 中的外设可以通过 MIO( 54pin,Multiuse I/O,多用输入/输出)模块连接到 PS 端的引脚上,也可以通过 EMIO 连接到 PL 端。zynq7000 SOC 结构见下图:PS 所有的外设都可以通过 MIO 访问,这些外设也是与 MIO 进行连接,每个 MIO 虽然可以独立控制,以及独立驱动单个引脚的外设,但对于 QSPI、 USB、以太网等这些外设,其于 MIO 的连接有着特殊的要求,而MIO 一但选定,引脚位

2020-09-19 14:18:56 6004

原创 FPGA时序约束学习笔记(二)Quartus II实练

目标:通过时序优化,使系统的最高运行频率提高。实例:VGA显示模块(1)理解时序与温度的关联温度过高与过低均会影响寄存器间的时间余量,一般默认状态为Slow 1200mV 85C Model。(2)查看最大时钟运行频率外部输入时钟为50MHz,显示的最大运行频率为119.06MHz软件自动识别时钟信号,按照10MHz频率进行布局布线,但是VGA显示输入的时钟为25MHz,远不满足使用需求,需要通过时钟约束来优化时钟频。(3)创建时钟约束,打开时序分析,创建time

2020-09-04 18:38:49 5012

原创 FPGA时序约束学习笔记(一)理论知识

时钟信号也是如此,全局时钟资源有专门的时钟路径,在自己的空间走线,不穿过或很少穿过各种高速翻转的逻辑区域,因此很少受到污染。 而非全局时钟资源没有专门的时钟时钟信号也是如此,全局时钟资源有专门的时钟路径,在自己的空间走线,不穿过或很少穿过各种高速翻转的逻辑区域,因此很少受到污染。 而非全局时钟资源没有专门的时钟,路径,只能使用通用布线资源,而这些布线不可避免的会穿过很多高速翻转的逻辑区域。从而受到这些逻辑的翻转噪声的污染。最终时钟信号变的很差。例如边沿上升和下降更慢, 占空比发生变化,时钟抖动增大等。

2020-09-03 23:07:51 2565

原创 FPGA学习日记(八)SDRAM的读写测试

目的:对SDRAM进行读写测试,使用FIFO对SDRAM进行封装。SDRAM功能框图:SDRAM原理图:初始化状态机:工作状态机:代码如下:SDRAM顶层模块:连接外部芯片与测试灯,并通过pll例化三个时钟,供fifo(50)与SDRAM(100)控制模块使用,测试读写SDRAM数据的一致性。输出到SDRAM芯片的时钟为(100m_shift).module sdram_rw_test( input clk, .

2020-09-02 18:00:40 2687

原创 FPGA学习日记(七)HDMI图像数据传输

一、实现目标将输入的RGB888格式的数据转换成四个串行输出的RGB信号及像素时钟信号。二、数据流传输HDMI常采用TMDS传输(上升沿复位)方式:(1)通过三个通道分别可传入8位的rgb视频信号,2位的控制信号,4位的音频信号或其他数据信号,其中行场同步信号在blue的控制信号中传输;(2)在encode编码器这端,将输入的8位视频信号通过TMDS算法转换为10位的视频信号输出到并串转换模块;(3)在并串转换模块中将输入的10位数据转为串行数发送到接受设备。三、数据流传输实

2020-08-14 22:46:35 4424

转载 FPGA学习日记(六)HDMI协议

HDMI介绍与流程HDMI 是新一代的多媒体接口标准, 英文全称是 High-Definition Multimedia Interface, 即高清多媒体接口。 它能够同时传输视频和音频,简化了设备的接口和连线;同时提供了更高的数据传输带宽, 可以传输无压缩的数字音频及高分辨率视频信号。 HDMI 1.0 版本于 2002 年发布, 最高数据传输速度为 5Gbps; 而2017 年发布的 HDMI 2.1 标准的理论带宽可达 48Gbps。HDMI引脚:HDMI有A,B,C,D,E..

2020-08-14 21:45:29 2764

原创 FPGA学习日记(五)ZYNQ——在线逻辑分析仪(ILA)硬件调试及simulator仿真软件的创建使用

一、在线逻辑分析仪(ILA)vivado的在线逻辑分析仪(ILA)其借用了传统逻辑分析仪的理念以及大部分的功能, 并利用 FPGA 中的逻辑资源, 将这些功能植入到 FPGA 的设计当中。如下图所示,ILA占用一部分FPGA内部逻辑资源,可看做一个模块,被设计模块所调用。ILA使用时需要与下载器连接,将FPGA的测试信号传回到vivadoIDE中,显示波形以供调试。运行过程如下:ILA的创建使用有两种方法:综合前创建IP核和综合后使用网表添加被测信号。(1)使用IP核创建并使用ILA1.

2020-08-11 19:13:55 6011

原创 2021届大疆秋招FPGA笔试——2020.8.10

大致回忆一下做完的大疆笔试题时间60分钟单选10道多选5道填空题(3or5)道程序设计题4道 (4*8‘)题型大致是这样,分值前面没注意,前三类题都是一些比较零散的知识点,我尽量列出来:1.fpga的时序约束有哪些(时序约束)2.语句覆盖包括哪些种类(覆盖)3.锁存器(latch)和触发器(flip-flop)区别4.亚稳态是否只存在于仿真,电路中不存在?(亚稳态概念)5.单比特、多比特数据异步传输解决方法6.FPGA 中可以综合实现为 RAM/R..

2020-08-10 21:01:26 2197

原创 FPGA学习日记(四)FPGA的RS232串口通信实验

本次实验目的:通过FPGA控制urat串口,接收上位机的数据并将接收到的数据发送给上位机,完成串口数据环回。实验介绍:UART是一种采用异步串行通信方式的通用异步收发传输器( universal asynchronousreceiver-transmitter), 它在发送数据时将并行数据转换成串行数据来传输,在接收数据时将接收到的串行数据转换成并行数据。异步串行通信的接口标准有RS232、 RS422、 RS485,RS-232是单端输入输出(双线),而RS-422/485为差分输入输出。.

2020-08-04 00:12:13 3838

原创 FPGA学习日记(三)FPGA的VGA显示实验

最近会复习之前的知识,用正点原子的开拓者开发板做一些以前实验的复现,目的是为了锻练在只提供目的和条件的情况下,独立设计编写模块的能力,及找出复现过程中出现的问题,最后做一个备忘日记的作用。 本次实验目的:VGA接口在显示器上显示彩条,要求分辨率为640*480, 刷新速率为60hz。实验介绍: VGA的全称是Video Graphics Array, 即视频图形阵列, 是一个使用模拟信号进行视频传输的标准。所用到的引脚:VGA时序:不同分辨率的VGA时序参数 :...

2020-08-02 17:07:14 2488

原创 FPGA学习日记(二)使用quartusII创建ip核

使用quartusII创建各类ip核,操作大体上都相似,区别在于根据实际需求对ip核进行设置,下面以pll的ip核创建为例,讲述ip核的一般创建过程。step1:找到tools下的魔棒选项;step2:选择创建一个新的ip核还是导入已有的ip核;step3:当以第一次创建ip核时,搜索框中输入想创建的ip核名称和类型,且将其ip核的地址保存至相应的路径,并且为ip和文件命名;step4:设置自己所需要的的ip核条件;step5:设置完后需要添加altera的仿真库;step6:最后根据自

2020-07-15 01:12:29 7185

原创 FPGA学习日记(一)从《夏宇闻verilog数字系统设计verilog》学习语法基础——1-7章

《夏宇闻verilog数字系统设计》课后章节思考:https://blog.csdn.net/weixin_44973391/article/details/103271314第二章:Verilog语法基本概念综合:指的是将对逻辑行为的描述变为对逻辑单元互联的描述。模块化设计:上层模块与子模块,通过端口互联。Verilog用于模块测试:行为级(功能,前)仿真,逻辑网表仿真和门级仿真,加上布局布线后,可进行布线后仿真(与真实电路非常接近)。通过运行仿真器,观察输入输出波形图来分析设计的电路模块是否

2020-07-14 17:28:21 1517

原创 FPGA入门之路(1)xilinx zynq 7010 开发板测试

1.开发板简介我是在黑金买的一块ZYNQ7010的开发板,开发版各参数和结构图如下:(1)USB 5V 电源供电,或者扩展口 5V 供电,最大电流不超过 500mA;(2 Xilinx 双核 ARMcortex-A9+FPGA 芯 片 Zynq-7000 (XC7Z010-1CLG400C) ( AC7020 为XC7Z020-2CLG400I) ;(3)两片大容量的 2Gbit(共 4...

2019-11-19 20:27:27 11257

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除