VHDL缩位与/缩位或运算

1.VHDL的基础知识  目录 1.VHDL语言基础 1.1.标识符 (Identifiers) 关键字(保留 字): 1.2.数据对象(Date Objects) 常量 Constant 变量Variable 信号Signal 1.3.数据类型 VHDL的预定义数据类型 IEEE预定义标准逻辑位与矢量 用户自定义 1.4数据类型转换 属性 运算符 运算符的优先级  1.VHDL语言基础 ... 阅读详情

缩位运算符,即"reduction operator"。对于VHDL来说,很少有人知道其缩位运算符是什么。首先缩位运算的意思是把一个vector合并成一位,例如缩位与运算符:对于一个std_logic_vector名为example的变量,完成examlle[0] and example[1] and ... and example[22]这样的运算的运算符。

  • 对于VHDL-2008,直接用and就可以完成:and(example);

  • 用组合逻辑自己写一个函数,按位或/与即可。

    function and_reduct(slv : in std_logic_vector) return std_logic is
      variable res_v : std_logic := '1';  -- Null slv vector will also return '1'
    begin
      for i in slv'range loop
        res_v := res_v and slv(i);
      end loop;
      return res_v;
    end function;
    You can then use the function both inside and outside functions with:
    
    signal arg : std_logic_vector(7 downto 0);
    signal res : std_logic;
    ...
    res <= and_reduct(arg);
    
  • or_reduce和and_reduce也可以完成上面的内容。要主要包含头文件std_logic_misc。

参考文献
  1. https://electronics.stackexchange.com/questions/85922/vhdl-or-ing-bits-of-a-vector-together
  2. https://stackoverflow.com/questions/20296276/and-all-elements-of-an-n-bit-array-in-vhdl
8位16进制频率计设计实验--VHDL 一、实验目的 (1)学习并掌握Quartus II的使用方法 (2)学习简单时序电路的设计和硬件测试。 (3)学习使用VHDL 语言方法进行逻辑设计输入 (4)学习设计8位16进制频率计,学习较复杂的数字系统设计方法,并在实验开发系统上熟悉运行输入及仿真步骤原理 二、实验仪器设备 (1) PC机一台。 (2)Quartus Ⅱ开发软件一套 (3)EDA实验开发系统一套(EP1C12Q240C8) 三、实验原理 频率计的工作原理是用一个频率稳定度高的频率源作为基准时钟,对比测量其他信号的频率,也就是周期性信号 阅读详情

相关推荐

左移寄存器vhdl_8位移位寄存器vhdl代码

vhdl介绍:VHDL翻译成中文就是超高速集成电路硬件描述语言,主要是应用在数字电路的设计中。它在中国的应用多数是用在FPGA/CPLD/EPLD的设计中。当然在一些实力较为雄厚的单位,它也被用来设计ASIC。VHDL主要用于描述数字系统的结构,行为,功能和接口。除了含有许多具有硬件特征的语句外,VHDL的语言形式、描述风格以及语法是十分类似于一般的计算机高级语言。VHDL的程序结构特点是将一项工...

weixin_39561673的博客 1760

Verilog语法——操作符“&”(缩减运算符、“&”和“&&”在硬件中的区别)

Verilog语法——操作符“&” 单目运算符 & 这里介绍一种特殊的用法,也就是&作为单目运算符: Verilog 递减运算符(缩减运算符)(Reduction operators),以及$display系统函数 ModelSim 仿真 4 “&”操作符-FPGA笔试精解 “&”操作符有两种用途,既可以作为单目操作符,也可以作为二目操作符: 当“&” 作为单目操作符时, 是“缩位与” “&”和“&&”在硬件中的区别 Verilog中

electron的博客 1万+

VHDL的数据类型之布尔、位、位矢量、整数

是VHDL中的一种逻辑数据类型,用于表示逻辑真值。

qq_26087259的博客 1376

vhdl 函数

使用and_reduce() or_reduce 判断数据是否>0 在或者数据达到最大值 zores(N)完成数据的高位或者地位补0 not 对信号取反,类似Verilog的 ~ int2slv(n,p),将十进制数据n转换为位宽p的std_logic_vector 结构体的使用及结构体初值定义,这个在一个结构体体量很大时,有很大优势。 无需像verilog一样定义一堆名字机构类似的reg,并且在仿真时观察更加直观 type a is record array1 : std-logic_vecto.

Ruanyz_china的专栏 2176

(1)D触发器verilog描述

2.1 D触发器verilog描述 2.1.1 本节目录 第一,本节目录; 第二,本节引言; 第三,FPGA简介; 第四,verilog简介; 第五,D触发器verilog描述实例; 第六,结束语。 2.1.2 本节引言 给FPGA一个支点,它可以撬动整个数字逻辑。““给我一根杠杆我就能撬动地球”是古希腊数学家、物理学家阿基米德说的,这句话是阿基米德的经典语录,这句话还被翻译为“给我一个支点,我就能撬起整个地球”,用了夸张的方式来说明杠杆原理。” 2.1.3 FPGA简介 FPGA(F

kouq123的博客 7758

32位浮点加法系统的VHDL实现

IEEE 754标准是计算机科学中用于表示浮点数的一个标准,它规定了如何在计算机系统中存储和运算浮点数。这个标准在浮点数表示中涵盖了符号位、指数和尾数三个基本组成部分,并对它们的具体编码方式和使用方法给出了明确的规定。例如,指数部分采用偏移量编码来表示正负指数,并且区分了规格化数和非规格化数,以及定义了无穷大和NaN等特殊数值的表示方式。在硬件设计方面,IEEE 754标准的设计要求浮点运算单元(ALU)能够准确地实现浮点数的加减乘除等运算,并正确处理各种边界情况,包括特殊数值的生成和运算。

weixin_42583683的博客 1178

verilog中的位运算符,缩位运算符和逻辑运算符的说明

1.位运算符 按位运算的运算符是位运算符,原来的操作数有几位,结果就有几位,若两个操作数位数不同,则位数短的操作数左端会自动补0。 (1)按位取反:~  (2)按位与:&  (3)按位或:|  (4)按位异或:^  (5)按位同或:~^ 或 ^~ 2.缩位运算符(又称归约运算符) 缩位运算符是单目运算符,按位进行逻辑运算,结果是一位值! (1)与缩位运算符:&  (2)或缩位运算符...

强迫症高级患者的博客 1万+

AD9361 官方例程

文章目录一、官方资料1.1 介绍1.2 下载 和 使用1.3 相关资料二、步骤2.1 在Vivado中构建HDL2.2 在SDK中构建No- OS总结 一、官方资料 1.1 介绍 HDL参考设计介绍:AD9361 HDL Reference Designs 无操作系统介绍:AD9361 No-OS Software 1.2 下载 和 使用 HDL下载:Download HDL 在Vivado中构建HDL:Building HDL No-OS下载:Download No-OS 1.3 相关资料 AD

weixin_44630490的博客 3万+

VHDL or_reduce

VHDL的or_reduce是一种缩位运算符即"reduction operator"。把一个vector合并成一位,一个std_logic_vector名为example的变量,or_reduce完成examlle[0] or example[1] or …or example[N]功能。值得注意的是,使用or_reduce要包含头文件std_logic_misc。

axiba233的博客 628

手把手教你复现KDD 2024时空预测顶会论文:以UniST和ImputeFormer为例的代码实战与避坑指南

本文详细指导如何复现KDD 2024顶会论文中的UniST和ImputeFormer模型,涵盖环境配置、数据处理、模型训练及评估等关键步骤。通过实战案例和避坑指南,帮助研究者掌握时空预测与插补技术,提升在智慧城市、交通管理等领域的应用能力。

weixin_29204205的博客 279

STM32单片机入门学习(六)-光敏传感器控制LED

光敏传感模块一DO端接B13,GND接GND,VCC接VCC,AO不接。LED负极接B12,正极接VCC。

指尖魔法师 4368

FPGA、VHDL 基于RISC-V格式的16位位缩模型机设计

功能:R[rd] = sext(M[R[rs1] + sext(offset)][15:0]),半字加载,从地址 R[rs1] + sign-extend(offset)读取16位数据,写入R[rd]功能:M[R[rs1] + sext(offset) = R[rs2][15: 0],将 R[rs2]的16位数据存入内存地址 R[rs1]+sign-extend(offset)。功能:R[rd] = R[rs1] + R[rs2],把寄存器 R[rs2] 加寄存器 R[rs1],结果写入 R[rd]。

m0_69150145的博客 2588

芯片散热技术突破:多尺度结构与VC集成方案解析

在半导体技术快速发展的背景下,芯片散热成为制约性能提升的关键瓶颈。传统散热技术如风冷和水冷已接近物理极限,而两相浸没式液冷技术凭借其超高传热系数成为新的解决方案。通过多尺度表面结构设计与真空腔均热板(Vapor Chamber)的集成创新,可以显著提升沸腾性能,降低沸腾起始温差(ONB)并突破临界热流密度(CHF)限制。这种技术在数据中心、高性能计算(HPC)和边缘计算等高热流密度场景中具有重要应用价值,能有效提升能效比(PUE)并降低能耗。

weixin_36288992的博客 153

VHDL快速入门

写在前面 VHDL是一门硬件语言,没学过硬件语言,挺感兴趣,还可以用在计组的实验中,花了点时间学习整理了一下VHDL的基本语法,方便查看。本blog所用到的所有图片都引用自 VHDL语言的基本语法参考文档 一、VHDL语言的基本语法 1、VHDL语言的表示符 2、VHDL的数字 2.1 数字型文字 156E2的意思是156×\times×10210^2102; 下划线可以连接数字。 2.2 数字基数表示的文字 2.3 字符串型文字 2.4 下标名及下标段名 二、VHDL语言的数据对象 .

messyking的博客 6万+

【UML】第12篇 序列图(1/2)——基本概念和构成

序列图(Sequence Diagram)是一种用于显示对象之间交互的图形化表示。它描述了在特定场景下,对象之间按照时间顺序进行的消息传递和协作过程。在序列图中,对象被表示为带有垂直虚线的矩形,虚线表示对象的生命周期。对象之间的交互通过箭头表示的消息来表示,箭头从一个对象的生命线指向另一个对象的生命线,表示消息的发送和接收。

AI人人懂 3046

STM32F407+OV2640的DCMI+DMA双缓冲JPEG图像采集系统

在嵌入式视觉系统中,数字摄像头接口(DCMI)是MCU连接CMOS图像传感器的关键硬件通道,其与DMA协同实现零CPU干预的高速数据流采集;而JPEG作为一种基于DCT变换与量化压缩的有损图像格式,依赖传感器端硬件编码引擎才能满足实时性要求。理解DCMI三重同步时序(PCLK/HSYNC/VSYNC)与DMA双缓冲机制的流水线协作原理,是突破带宽瓶颈、避免FIFO溢出和帧丢失的技术基础。该架构广泛应用于智能硬件、工业检测与边缘AI前端等需低功耗、高可靠图像捕获的场景,本文以OV2640与STM32F407为

weixin_42103128的博客 156

FPGA(3)--VHDL及原理图--4位全加器

文章目录一、实验目的二、实验内容三、实验设计五、实验思考与总结 一、实验目的 掌握例化语句的使用方法,掌握使用程序文本和原理图结合方法设计电路,掌握利用包含算术操作符的重载函数的使用。 二、实验内容 首先用VHDL语言设计1位全加器,仿真验证其正确性,并将其封装成一个元件;设计串行4位加法器的电路,调用1位全加器设计4位加法器的原理图。通过编译、仿真验证功能正确性。 直接通过调用算术操作符的重载函数,利用VHDL语言设计4位全加器。通过编译、仿真验证功能正确性。 三、实验设计 1.在上一个实验中已经用V

叶绿体不忘呼吸 1万+

heygem本地部署报错:SQLite3 can only bind numbers, strings, bigints, buffers, and null...如何解决?

🏆本文收录于 《全栈Bug调优(实战版)》 专栏,该专栏专注于分享我在真实项目开发中遇到的各类疑难Bug及其深层成因,并系统提供高效、可复现的解决思路和实操方案。无论你是刚入行的新手开发者,还是拥有多年项目经验的资深工程师,本专栏都将为你提供一条系统化、高质量的问题排查与优化路径,助力你加速成长,攻克技术壁垒,迈向技术价值最大化与职业发展的更高峰🚀!    📌 特别说明: 文中部分技术问题来源于真实生产环境及网络公开案例,均经过精挑细选与系统化整理,并结合多位大厂资深架构师和一线开发多年实战经验沉淀,

**My Coding Family** 3246

VHDL学习:4位/8位全加器

VHDL学习记录

qq_44702247的博客 7917

delphi fmx android 自动更新(一)

所以,如果是http 则,manifest.xml application 下,https无需添加。增加android:usesCleartextTraffic="true",不然无法使用http下载东西。1,REQUEST_INSTALL_PACKAGES 权限。4,WRITE_EXTERNAL_STORAGE 权限。3,READ_EXTERNAL_STORAGE 权限。一般是从http下载安装包 apk。2,INTERNET 权限。sFile为apk包路径。

全粘工程师 550

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

VHDL入门基础

一、VHDL语言的基本语法 D触发器的VHDL实现 1、VHDL语言的表示符 2、VHDL的数字 2.1 数字型文字 156E2的意思是156 × \times × 1 0 2 10^2 102; 下划线可以连接数字。 2.2 数字基数表示的文字 2.3 字符串型文字 2.4 下标名及下标段名 downto 和 to 有什么区别 举个例子,比如要生命一个长度位8的vector的信号 Signal s1: std_logic_v...

yh13572438258的博客 2万+

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

VHDL语言实现8位LED流水灯

VHDL语言实现8位LED流水灯,包含对50MHz时钟信号分频产生1Hz信号 library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity led8 is generic(n:integer :=50000000); port (clk:in std_logic; reset:in std_logic; led8s:out std_logic_vector(7 downto 0)); end led8;

qq_45229168的博客 7821

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

vhdl入门8位全减器

课上写全减器,题看错了,还以为是用生成语句把两个半减器和一个与门连成一个全减器。现在一看,原来是先生成一个全减器,再用原件例化生成8位全减器1.半减器 找到真值表: 代码:课上我是用两个with——select写的,忘记了vhdl也可以用数组的方式,注意with——select是直接放在结构体下的! 如果是给高阻态,一定大写的Z。 --ujs-lili library IEEE; use IEE...

weixin_43475628的博客 1万+

4位全加器VHDL描述

 转自http://www.seas.upenn.edu/~ese171/vhdl/vhdl_primer.html#_Toc526061350 library  ieee; use  ieee.std_logic_1164.all; -- definition of a full adder entity FULLADDER is      port (a, b, c:

rookiew的专栏 1万+

VHDL1: VHDL求输入带符号的4位二进制数的补码并仿真

求输入带符号的4位二进制数的补码并仿真

wendyWJGU的博客 1540

VHDL的GENERATE语句实现四位全加器

1位全加器接口有:A被加数输入端,为加数输入端,C进位输入端,CO进位输出端,S和数输出端。1位全加器表达式如下:S=A xor B xor C, CO=(AB)+(AC)+(BC)。本文用VHDL语言的GENERATE语句用四个一位全加器实现一个四位全加器。

chenxr的博客 6658
上一篇: C++模板的本质
下一篇: pycharm中关于python虚拟环境的配置
隋边边
博客等级 码龄11年 304粉丝 91原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值