自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(40)
  • 资源 (2)
  • 收藏
  • 关注

原创 FPGA vs ASIC

FPGA vs ASIC相同点都设计使用硬件描述语言(HDL),如VHDL或Verilog。但ASIC相比于FPGA开发上,代码风格更为随意,因为FPGA是先有电路,后有代码,ASIC是先有代码后面有专门的人员进行布局布线,而且是专用的布局布线软件工具。不同点可编程性:FPGA可重构电路,完全由用户通过软件进行配置和编程,从而完成某种特定的功能,且可以反复擦写;ASIC永久电路,ASIC需要较长的开发周期,风险较大,一旦有问题,成片全部作废。功耗:在相同工艺条件下,FPGA要大于ASIC

2022-04-14 21:54:05 1634

转载 pyqt多线程入门学习

pyqt多线程入门在UI的设计中,主线程(QApplication.exec())必须保证事件循环不被阻塞来响应用户的输入,也就是不能把需要长时间运行的代码放在主线程,需要把这部分代码移到其他线程,通过信号与槽的机制来实现线程的通信。1、计数器的多线程基本功能:点击【Start】按钮的时候,下面的文本标签每隔一秒自动加1。import sysimport timefrom PyQt5.QtWidgets import QDialog, QPushButton, QApplication, QL

2022-04-08 17:19:50 823

原创 查找表(LUT,Look-up Table)的简单理解

查找表(LUT,Look-up Table)的简单理解引入:假设有一个 4 输入(a,b,c,d) 1 输出(o) 的逻辑单元,想要了解其内部结构。输入按照 0000-1111 去遍历,记录输出。得到真值表,运用卡诺图对其化简,得到最简 pos/sop 表达式,用门电路把结构画出来。真值表的变化反映电路的结构变化,门/线越多,延迟越大,频率越低。也就是表格变化时,电路工作速度不确定,导致严重的时序问题(竞争冒险,亚稳定状态)。总结:表格的不确定会引起延迟的不确定性和设计复杂的不确定性。扩展:如果

2022-03-24 14:47:59 3960

原创 Pyqtchart数据可视化_饼状图

Pyqtchart数据可视化_饼状图内容不重要,主要是记录一下报错。import sysfrom PyQt5 import QtGuifrom PyQt5.QtWidgets import QApplication, QMainWindowfrom PyQt5.QtChart import QChart, QChartView, QPieSeries, QPieSlicefrom PyQt5.QtGui import QPainter, QPenfrom PyQt5.QtCore impor

2022-03-24 14:42:15 2598 3

原创 基础排版总结

基础排版总结优秀论文必备要素:结构完整(框架整洁),三级标题式(二、2.1 、2.1.1)。排版紧凑,没有大段空行,内容翔实(多)。表格用三线表,图片清晰,标题写在表上图下。公式用公式编辑器,且带编号。常用功能:显示菜单栏打开显示/隐藏编辑标记(开始 - 段落里):可看到隐藏符号(空格、回车之类)。打印预览功能:可以看到论文导出为 PDF 的效果。先勾选图标把该功能加到菜单栏:点击该功能图标:会显示:右键——添加到快速访问工具栏:使得常用功能可以用快

2022-03-05 14:11:14 359

原创 数字集成电路与系统设计基础知识

数字集成电路与系统设计基础知识(一)ASIC可分为全定制和半定制。半定制是调配厂家的设计资源(库单元),全定制是全部自己做。from scratch:白手起家、从头开始。such that:使得;这样。design effort:可理解为设计工作。手绘Geometry(在光掩模上成像的预期图案);所有层定制;(构成设备的一系列重叠光掩模或光掩模图像中的一个)数字和模拟;晶体管级仿真(模拟);高密度;高性能;设计时间长。PS:对密度的理解光掩模上图案与无图案区域的相对程

2022-03-05 12:44:45 2621

原创 9 - 具化的按钮子类

9 - 具化的按钮子类(一)QPushButton1、描述用来给用户点击, 来完成某种动作的控件,一般是矩形。例如:登录按钮、注册按钮、关闭按钮、是、否…2、继承QObject——QWidget——QAbstractButton——QPushButton3、功能作用(1)构造函数QPushButton():创建一个无父控件的按钮控件;QPushButton(parent):创建控件的同时, 设置父控件;QPushButton(text, parent):创建控件的同时, 设置提示文本

2022-02-19 13:06:35 626

原创 8 - 按钮基类QAbstractButton

8 - 按钮基类QAbstractButton(一)描述所有按钮控件的基类,提供按钮的通用功能(见三 功能作用)。Abstract:抽象类,把公共特性放在虚拟的类里面,类本身不能直接使用,需要别的类继承并实现。子类按钮效果:QPushButtonQCommandLinkButtonQRadioButton:单选按钮QCheckBox:多选框QToolButton:工具按钮,有菜单(二)继承继承关系:QObject——QWidget——QAbstra

2022-02-17 13:56:41 592

原创 7 - 可视化控件基类QWidget

7 - QWidgetQWidget VS QObjectQObject不是可视化控件,是所有QT对象的基类。Qwidget则是所有可视化控件的基类。(一)描述所有的可视控件的基类(仅有全部可视控件的共性,比如是个方块,可调整大小,移动位置等等);是一个最简单的空白控件;控件是用户界面的最小元素;功能:接收各种事件(鼠标、键盘…),绘制在桌面上,展示给用户看。每个控件都是矩形的,它们按Z轴顺序排序(Z轴面向人,后面的会被前面的遮挡,后面的是父控件);控件由其父控件和

2022-02-15 11:12:57 1403

原创 6 - PyQt5 基类 QObject

6 - PyQt5 基类 QObject从上图列出的所有基类可以看到,QObject 是所有的 Qt 对象的基类。那么,QObejct 的父类是什么呢?这就需要用到 mro。mro:Method Resolution Order,方法解析顺序,可以打印出来类的继承顺序,也有博主提出不需要调用的解决办法。 def setup_ui(self): self.test_inheritance() def test_inheritance(self):

2022-02-03 15:17:38 1258

原创 HDLBits——More Circuits

HDLBits——More CircuitsProblem 115 Rule90Requirement:Rule90 是一道根据一些有趣的规则来生成一维序列的题目。规则很简单:一维序列中元素有 1、0 两种状态,分别对应开、关状态。在每个时钟边沿到来时刻,元素的下一个状态为元素相邻两个元素的异或。下表更详细地给出了跳变的规则(可以视为状态转移表),元素下一个状态可以视作输出,输入为元素本身的状态与相应两个相邻元素的当前状态。(“Rule90” 这个名字来自表中 “next state 下一状态”

2021-12-26 10:31:11 2184

原创 HDLBits——Shift Registers

HDLBits——Shift RegistersProblem 106 4-bit shift registerRequirement:设计一个 4bit 异步复位,拥有同步置位(load)和使能的右移移位寄存器。areset : 寄存器复位为 0。load : 将 data[3:0] 输入至移位寄存器中而不是移位。ena : 使能信号,控制向右移动(q[0] 移出消失,q[3] 变为0)。q : 移位寄存器中的数据。如果 load 和 ena 输入同时为高

2021-12-20 22:42:54 639

原创 HDLBits——Counters

HDLBits——CountersProblem 98 Four-bit binary counterRequirement:设计一个 4bit 的计数器,从 0~15,共 16 个周期,reset 是同步复位且复位为 0。Solution:module top_module ( input clk, input reset, // Synchronous active-high reset output reg [3:0] q); always @

2021-12-19 21:54:37 447

原创 HDLBits——Latches and Flip-Flops

HDLBits——Latches(锁存器) and Flip-Flops(触发器)Problem 80 : D flip-flop (Dff)Requirement:实现一个 D 触发器。D 触发器是一个最简单的触发器,存储 1bit 数据,并定期地根据触发器的输入(d)更新这 1 bit 数据,更新通常发生在时钟上升沿(clk),存储的数据会通过输出管脚(q)输出。在时钟敏感的 always 块中的语句一般都会被综合工具转换为相应的触发器。Solution:module top_module

2021-12-08 16:18:54 856 1

原创 HDLBits——Karnaugh Map to Circuit

HDLBits——Karnaugh Map to CircuitProblem 72 3-variableRequirement:根据卡诺图来实现电路,用最大项之积和最小项之和的形式来完成电路设计。在编写 verilog 之前,可先化简卡诺图。Solution:module top_module( input a, input b, input c, output out ); assign out = a | b | c;endmodule

2021-12-06 19:52:47 316

原创 HDLBits——Arithmetic Circuits

HDLBits——Arithmetic CircuitsProblem 65 : Half adder (Hadd)Requirement:本题中需要实现一个 2 进制 1bit 加法器,加法器将输入的两个 1bit 数相加,产生两数相加之和以及进位。Solution:module top_module( input a, b, output cout, sum ); assign {cout,sum} = a + b; endmoduleProbl

2021-12-02 16:20:01 249

原创 HDLBits——Multiplexers

HDLBits——MultiplexersProblem 60 : 2-to-1 multiplexer (Mux2to1)Requirement:multiplexer:多路选择器。本题中需要实现一个 2 选 1 选择器,sel 信号作为选择信号,当 sel = 1 时选择 b,反之选择 a。Solution:module top_module( input a, b, sel, output out ); assign out = sel ? b : a;

2021-12-01 21:22:48 425

原创 HDLBits——Basic Gates

HDLBits——Basic Gates

2021-11-30 19:58:31 285

原创 HDLBits——More Verilog Features

HDLBits——More Verilog FeaturesProblem 36: Conditional ternary operator(Conditional)Requirement:给出四个无符号数,请找到其中的最小值。提示:使用条件运算符描述一个两路的最小值电路,然后组合它来创建一个4路最小电路,可能需要一些wire变量用于表述中间结果。无符号数可以使用比较运算符进行比较Solution:module top_module ( input [7:0] a, b, c,

2021-11-29 21:46:10 382

原创 HDLBits——Procedures

HDLBits——ProceduresProblem 28: Always blocks(combinational) (Alwaysblock1)Requirement:过程块(比如 always 块)提供了一种用于替代 assign 语句描述电路的方法。分别使用 assign 语句和组合 always 块来构建与门。Solution:// synthesis verilog_input_version verilog_2001module top_module( input a,

2021-11-28 16:48:28 591

原创 HDLBits——Modules:Hierarchy

HDLBits——Modules:HierarchyProblem 19 : ModulesRequirement:创建一个下级模块 mod_a,将其的三个端口 in1 ,in2 ,out 按照图中的连接方式,分别连接到顶层模块的 a ,b,out 端口上。Solution:module top_module ( input a, input b, output out ); mod_a mod_a ( .in1(a), .in2(b),

2021-11-27 21:07:08 715

原创 HDLBits——Vectors

HDLBits —— VectorsVectors(向量;总线)要求:构造一个电路,拥有 1 个 3 bit 位宽的输入端口,4 个输出端口。其中一个输出端口直接输出输入的向量,剩下 3 个输出端口分别各自输出 3 bit 中的 1 bit。上图中,箭头上的小斜杠旁边的数字代表该向量(总线)的位宽,用于将向量同 wire 信号区别开来。Solution:module top_module ( input wire [2:0] vec, output wire [2:0] out

2021-11-25 15:30:11 471 2

原创 HDLBits——Basics

HDLBits——BasicsSimple wire要求:[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xVLSIS1l-1637764502113)(https://hdlbits.01xz.net/mw/thumb.php?f=Wire.png&width=800)]Solution:module top_module( input in, output out ); assign out = in;endmoduleTiming di

2021-11-24 22:36:14 211

原创 10 - 状态机代码设计与仿真

10 - 状态机代码设计与仿真串口指令处理器代码:cmd_pro.v//2021.11.24 lyw//Instruction processormodule cmd_pro ( clk, res, din_pro, en_din_pro, dout_pro, en_dout_pro,

2021-11-24 15:55:10 296

原创 9 - 状态机代码设计与仿真

9 - 状态机代码设计与仿真串口数据发送状态规划:代码://2021.11.23 lyw//Serial port data sending`timescale 1ns/10psmodule UART_TXer ( clk, res, data_in, en_data_in, TX, rdy);

2021-11-24 13:53:17 222

原创 8 - 状态机代码设计与仿真

8 - 状态机代码设计与仿真串口数据接收波特率 VS 比特率:在信息传输通道中,携带数据信息的信号单元叫码元。每秒钟通过信道传输的码元数称为码元传输速率,简称波特率。波特率是传输通道频宽的指标。每秒钟通过信道传输的信息量称为位传输速率,简称比特率。比特率表示有效数据的传输速率。比特率 = 波特率 * 单个调制状态对应的二进制位数。UART:串行接口是指数据在有限的几个 IO 上按照顺序,一位一位的进行传输。这类有很多:UART、IIC、SPI、CAN、USB 等等,只要是串行传输的接口,都

2021-11-23 16:50:47 3649 1

原创 7 - 简单状态机代码设计

7 - 简单状态机代码设计三角波发生器代码://2021.11.21 lyw//The simplest state machine——triangle wave generator`timescale 1ns/10psmodule tri_gen ( clk, res, d_out);input clk;input res;output[8:0]

2021-11-22 14:30:19 747

原创 6 - 时序逻辑代码设计与仿真

6 - 时序逻辑代码设计与仿真相邻 16 点相加输出采样脉冲尖 = 采样时钟和采样时钟反向延时的与,全称:采样时钟上升沿识别脉冲。con_syn 也叫采样时钟循环计数器,对采样脉冲尖进行 0-15 的循环计数,用于控制累加的节奏,每当计数器结果为 15 时,把累加结果送到 data_out,并产生一个累加和同步脉冲。代码://2021.11.20 lyw//Add adjacent 16 points`timescale 1ns/10psmodule sigma_16p (

2021-11-21 16:50:52 521

原创 5 - 时序逻辑代码设计与仿真

5 - 时序逻辑代码设计与仿真秒计数器(0-9 循环计数)把系统时钟进行分频,得到秒脉冲,对秒脉冲进行计数。con_t 是秒脉冲分频计数器,需要对 24M 来计数,至少需要 25 位。s_pulse 是秒脉冲尖,con_t 为 0 时为1,1 秒有 24M 个脉冲,但只有 1 个脉冲时 s_pulse=1。s_num 是秒计数器,看到 s_pulse 为 1 时计数。//2021.11.19 lyw//Second counter 0-9 cycles`timescale 1ns/10

2021-11-19 22:26:05 597 2

原创 4 - 时序逻辑代码设计和仿真

4 - 时序逻辑代码设计和仿真计数器always 块理解:触发器的敏感变量是时钟信号的上升沿和复位信号的下降沿【这是时序逻辑电路的特点】。敏感信号的意思是:只有到达时钟信号的上升沿和复位信号的下降沿时,always 才会动,即去判断引起 always 变化的是不是复位信号。if() 里面是触发器复位时的动作【res 为0】,else 是触发器正常工作时的动作。触发器复位就是清零,正常工作就是把 sum 送给 y。之前的组合逻辑中也用到过 always 和 reg 型变量,但它们都不

2021-11-18 22:45:02 551

原创 3 - 组合逻辑代码设计和仿真

3 - 组合逻辑代码设计和仿真补码转换代码://2021.11.18 lyw//Complement conversion`timescale 1ns/10psmodule comp_conv ( a, a_comp);input[7:0] a;output[7:0] a_comp;assign a_comp=a[7]?{a[7],~a[6:0]+1}:a;endmodule/

2021-11-18 15:27:23 351

原创 2 - 组合逻辑代码设计和仿真

2 - 组合逻辑代码设计和仿真用问号冒号语句实现二选一:用 always 语句块实现组合逻辑:用 if-else 实现二选一://2021.11.17 lyw//2 choose 1 logic design`timescale 1ns/10psmodule fn_sw ( a, b, sel, y);input a;input b;input se

2021-11-17 19:18:22 372

原创 1 - 基本逻辑门代码设计和仿真

1 - 基本逻辑门代码设计和仿真设计流程的改变:反相器:八位反相器:与非门:四位与非门:位逻辑操作运算符:多位宽电路符号图画法(打斜杠写数字):代码结构:时间作者module 功能timescalemodule (端口名)端口属性【输入输出】输入输出关系endmodulemodule testbench; // testbench 没有端口,不带括号,但要写分号定义输入输出,输入 reg,输出 wire,把信号接到例化后的 module 里面。异名例化 m

2021-11-17 19:17:18 533

原创 0 - ModelSim 仿真

ModelSim 仿真1、切换工作目录(.v 文件所在目录)【File-Change Directory】代码:cd C:/Users/16041/Documents/Verilog/Course2、创建 Library【File-new-Library】缺省名称为 work - work也可使用代码://在当前目录建立逻辑库 work,运行后会在当前目录下找到 work 文件夹。vlib work//映射逻辑库名到指定的目录vmap work work3、编译 Compile

2021-11-16 14:49:06 452

原创 5 - PyQt5 控件介绍

5 - PyQt5 控件介绍1、什么是控件一个程序界面上的各个独立的元素(表现为一块矩形区域),具备不同的功能,比如:用户点击、接收用户输入、展示内容、存放其他控件…2、基础控件:2.1 按钮QPushButton:仅仅用来被点击。QCommandLinkButton:加上详情。QRadioButton:单选按钮,可选择某一单独菜单。QCheckBox:复选框,可以同时选择多个。2.2 输入控件纯键盘输入QLineEdit:单行输入框。QTextEdit:多行输入框,不

2021-09-11 16:14:35 2164

原创 4 - 面向对象版本的PyQt

4 - 面向对象版本的PyQt1、PyCharm 活动模板设置活动模板:通过一个简短的字符串和某一段代码,把代码块关联起来。可以键入字符串,从而自动补全代码块。选择语言,在右侧点击 + ,选择 Live Template,填写底部内容。其中,Template text 内容如下:# 0.导入包和模块from PyQt5.Qt import *import sys# 1.创建应用程序对象app = QApplication(sys.argv)# 2.1 创建控件window = QW

2021-09-09 17:16:46 127

原创 3 - PyQt5 程序基本结构分析

3 - PyQt5 程序基本结构分析1、面向过程版本代码结构(1)导入需要的包和模块# 导入系统包import sys# PyQt5.Qt把常用的类汇总在一起from PyQt5.Qt import *(2)创建一个应用程序# app是变量名,sys.argv帮助我们在用命令行执行程序时传递参数app = QApplication(sys.argv)print(app.arguments())首先从名字上看:argv 的意思就是参数parameter 是指函数定义中的参数,而

2021-09-08 23:24:08 550

原创 2 - PyQt5的介绍

2.1 - PyQt5的介绍(2)1、什么是 GUI 编程GUI:Graphical User Interface,又称图形化用户接口(接口:对接的入口,在计算机中“接口”常指前端和后端交互的入口,即API)。会有一个图形化的界面展示给用户,与用户交互。用户只需要鼠标点击就可以控制,而不是输入代码指令,接收枯燥的反馈。而 GUI 编程,就是编写图形化界面的软件供用户使用。2、与 GUI 编程相关的库官网由相关介绍:https://wiki.python.org/moin/GuiProgrammin

2021-09-06 00:49:19 630

原创 1 - PyQt5环境配置

PyQt5环境配置系统:win10(64位)语言:python 3.7.5第三方库:PyQT5 5.15.4​ pyqt5-tools 5.15.4.3.2工具:PyCharm 2021.2.11、安装python去官网 https://www.python.org/downloads/windows/ 找对应版本下载,无需手动设置。python安装包区别:x86是32位,x86-64是64位;web-based installer 是需要通过联网

2021-09-02 16:18:36 1872

原创 解决导入markdown时本地图片无法显示问题——图床

解决导入markdown时本地图片无法显示问题——图床图床工具: PicGo图片服务器:Gitee辅助工具:Node.js 14.17.6图床:一般是指储存图片的服务器,有国内和国外之分。国外的图床由于有空间距离等因素决定了访问速度很慢,影响图片显示速度。国内也分为单线空间、多线空间和cdn加速三种。图片服务器可选七牛云, 阿里云 OSS , gitee ,其中 gitee 给了 5 个 G 的空间,而且网络也快。1、安装 PicGo先下载 PicoGo ,下载地址:https://g

2021-09-02 15:57:07 4606

数字集成电路英文术语及解释

一些集成电路领域的专业名词解释,适合初学者。

2022-03-05

自己关于排序算法的总结.pdf

几乎把网上的排序算法小结找遍了,简单地小结一下算法的思路(不含代码,只是用易懂的话说清楚算法是怎么做的),算法时间复杂度和空间复杂的求法(用理解的方式而不是分析代码),各种排序算法的优缺点,稳定与否以及为什么稳定、为什么不稳定,各种算法适用的情况等等内容。都是自己总结的,绝对不无脑复制粘贴。

2020-07-01

空空如也

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

TA关注的人

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