【FPGA实验1】FPGA点灯工程师养成记
对于FPGA几个与LED相关的实验(包括按键点灯、流水灯、呼吸灯等)的记录,方便日后查看。这世界上就又多了一个FPGA点灯工程师了😏
成为一个FPGA点灯工程师分三步:
- 一、按键点灯
- 1、按键点灯程序
- 2、硬件实现
- 二、流水灯
- 1、流水灯程序
- 2、仿真
- 3、硬件实现
- 三、呼吸灯
- 1、先“吸”
- 2、再“呼吸”
- 3、最后大口地呼吸
一、按键点灯
按键点灯程序比较简单,就不搞仿真了,直接上机
1、按键点灯程序
module led(input wire key_1,output reg led_1);always@*led_1=!key_1;endmodule
由程序得到的RTL图:
2、硬件实现
(1)引脚分配与接线
引脚分配如下,记得引脚分配后再编译一次,不然可能没有现象。
上述引脚分配对应的接线:JX22连接到JP5,JX5连接到JP1。
为什么要这样接线可以参考《【FPGA实验2】二进制转为格雷码》中的【三、实验箱实验】➡️【3、引脚分配】。
(2)实验现象
具体的实验现象可观看下方的视频😏
二、流水灯
学了点状态机的内容,决定用状态机来写一下这个流水灯的代码。
感谢正点原子的视频,用了一个很好理解的例子讲了状态机是怎么样的一个东西,并总结了写状态机主要有四个步骤(也称四段论):
(1)状态空间定义(定义各个状态)
(2)状态跳转(告诉FPGA:你要跳转。让FPGA知道在什么条件下,你要从现在状态跳转到下一个状态)
(3)下个状态的判断(告诉FPGA:你要怎么跳。给FPGA一个地图,判断现在的情况是什么,然后根据地图确定下一个要跳转的状态)
(4)各个状态下的动作(我理解为状态对应信息的输出)
1、流水灯程序
module WaterLED(input wire clk,input wire rst_n,output wire [7:0]led_data);//空间状态定义parameter S1=8'b10000000;parameter S2=8'b01000000;parameter S3=8'b00100000;parameter S4=8'b00010000;parameter S5=8'b00001000;parameter S6=8'b00000100;parameter S7=8'b00000010;parameter S8=8'b00000001;reg [7:0]current_state;reg[7:0]next_state;//状态跳转always @(posedge clk or negedge rst_n) beginif(! rst_n) current_state<=S1; //复位,从状态S1开始else current_state<=next_state; //不是复位的情况下,到达时钟的上升沿就转到下一个状态end//状态判断always @(current_state) begincase(current_state) S1:next_state=S2;S2:next_state=S3;S3:next_state=S4;S4:next_state=S5;S5:next_state=S6;S6:next_state=S7;S7:next_state=S8;default:next_state=S1;endcaseend//各个状态下的动作assign led_data=current_state;endmodule
得到的RTL图如下:
2、仿真
流水灯的仿真程序如下:
`timescale 1ns/100ps
module tb_WaterLED;reg clk_1;reg rst_n_1;wire [7:0] led_data_1;parameter PERIOD=10;always #(PERIOD/2) clk_1=~clk_1;initial beginclk_1=0;#200 $stop;endtask task_rst;begin rst_n_1=0;repeat(2) @(negedge clk_1);//两个时钟负跳变之后rst_n_1=1;endendtaskWaterLED WD_1(.clk(clk_1),.rst_n(rst_n_1),.led_data(led_data_1));initial begintask_rst;$display("task_rst ok!!!");endendmodule
【如何将仿真程序加入到工程中以及如何仿真可以看上一篇《【FPGA实验0】Quartus建立工程文件以及仿真》)】
仿真结果如下:
在两个时钟下降沿之后,复位线RST置高;之后随着每一个时钟上升沿的到来,开始状态的转换。
3、硬件实现
在实际的硬件实现中,需要注意两个点:
(1)时钟信号
在仿真中,两个状态之间的切换是在时钟信号的上升沿,因而,每个状态保持的时间是一个时钟信号周期(在上的仿真中,一个时钟信号的周期是10ns)。而如果在实际中要实现流水灯的效果,这样的间隔太小了,由于眼睛的暂存作用,我们看懂的现象是8个LED灯一直在同时亮着,没有流水灯的效果,因而我们必须将时钟周期改得大一点。
选择实验箱最大时钟12MHz(接线的话将左侧12M对应的时钟和右侧的任意一个引脚接起来即可),定义一个计数器,计数2400000个时钟周期,一个时钟频率为12MHz,一个时钟周期为83.33ns,2400000个时钟周期就是0.2秒。
reg [23:0] counter; //计数器对系统时钟计数,计时0.2秒always @(posedge clk or negedge rst_n) beginif (!rst_n)counter <= 24'd0;else if (counter < 24'd2400_000) //仿真的时候可以改为 24'd0000_0010,下同counter <= counter + 1'b1;elsecounter <= 24'd0;end
同时,状态跳变部分增加一个条件,修改为:
//状态跳转
always @(posedge clk or negedge rst_n) beginif(! rst_n) current_state<=S1; //复位,从状态S1开始else if (counter==24'd2400_000) current_state<=next_state; //不是复位的情况下,到达时钟的上升沿就转到下一个状态else ;
end
(2)复位键如何使用
复位键一开始需要置1(打到开的位置);
之后置0(下降沿产生出发条件;同时!rst=0,状态为初始状态S1);
完成复位后置1(使此刻的状态在触发之后能跳转到下一个状态)。
整个硬件实现的程序:
module WaterLED(input wire clk,input wire rst_n,output wire [7:0]led_data);//空间状态定义parameter S1=8'b10000000;parameter S2=8'b01000000;parameter S3=8'b00100000;parameter S4=8'b00010000;parameter S5=8'b00001000;parameter S6=8'b00000100;parameter S7=8'b00000010;parameter S8=8'b00000001;reg [7:0]current_state;reg[7:0]next_state;reg [23:0] counter;//计数器对系统时钟计数,计时0.2秒always @(posedge clk or negedge rst_n) beginif (!rst_n)counter <= 24'd0;else if (counter < 24'd2400_000) //仿真的时候可以改为 24'd0000_0010,下同counter <= counter + 1'b1;elsecounter <= 24'd0;end//状态跳转always @(posedge clk or negedge rst_n) beginif(! rst_n) current_state<=S1; //复位,从状态S1开始else if (counter==24'd2400_000) current_state<=next_state; //不是复位的情况下,到达时钟的上升沿就转到下一个状态else ;end//状态判断always @(current_state) begincase(current_state) S1:next_state=S2;S2:next_state=S3;S3:next_state=S4;S4:next_state=S5;S5:next_state=S6;S6:next_state=S7;S7:next_state=S8;default:next_state=S1;endcaseend//各个状态下的动作assign led_data=~current_state;//灯为0时亮起,为1时变暗endmodule
对应的RTL图:
引脚分配与接线:
按之前的接线即可,key8为复位键。
上述引脚分配对应的接线:JX22连接到JP5,JX5连接到JP1。
为什么要这样接线可以参考《【FPGA实验2】二进制转为格雷码》中的【三、实验箱实验】➡️【3、引脚分配】。
时钟引脚:左侧的12M时钟引脚接到右侧任意一个引脚即可。总的接线图如下:
具体现象可以看文末的视频😏
三、呼吸灯
呼吸灯,就是灯的亮度由暗变亮再由亮变暗,像人的呼吸一样。
1、先“吸”
(1)代码
module PWM( input wire clk,output wire[9:0] pwma,output wire pwmb);reg [3:0]counter1=0,counter2=0;reg [9:0]pwm_1=10'b0000_0000_00;reg[0:0] pwm_2;always@(posedge clk) beginif(counter2==4'd9) beginif(counter1==4'd9) begincounter1=0;pwm_1=10'b0000_0000_00; endelse counter1=counter1+1; pwm_1[counter1]=1;counter2=0;endelse counter2=counter2+1;pwm_2=pwm_1[counter2];endassign pwma=pwm_1;assign pwmb=pwm_2;endmodule
(2)仿真文件:
`timescale 1ns/100ps
module tb_PWM;reg clk;wire [9:0]pwma;wire [0:0]pwmb;parameter PERIOD=10;always #(PERIOD/2) clk=~clk;initial beginclk=0;# 3000 $stop;endPWM PWM_1(.clk(clk),.pwma(pwma), .pwmb(pwmb));endmodule
(3)仿真结果:
2、再“呼吸”
(1)代码
module PWM(input wire clk,output wire[9:0] pwma,output wire pwmb);reg [4:0]counter1=0;reg [3:0]counter2=0;reg [9:0]pwm_1=10'b0000_0000_00;reg[0:0] pwm_2;always@(posedge clk) beginif(counter2==4'd9) beginif(counter1==5'd17) counter1=0;else counter1=counter1+1; $display("counter1: ",counter1);case(counter1)5'd0 : pwm_1=10'b0000_0000_01;5'd1 : pwm_1=10'b0000_0000_11;5'd2 : pwm_1=10'b0000_0001_11;5'd3 : pwm_1=10'b0000_0011_11;5'd4 : pwm_1=10'b0000_0111_11;5'd5 : pwm_1=10'b0000_1111_11;5'd6 : pwm_1=10'b0001_1111_11;5'd7 : pwm_1=10'b0011_1111_11;5'd8 : pwm_1=10'b0111_1111_11;5'd9 : pwm_1=10'b1111_1111_11;5'd10 : pwm_1=10'b0111_1111_11;5'd11 : pwm_1=10'b0011_1111_11;5'd12 : pwm_1=10'b0001_1111_11;5'd13 : pwm_1=10'b0000_1111_11;5'd14 : pwm_1=10'b0000_0111_11;5'd15 : pwm_1=10'b0000_0011_11;5'd16 : pwm_1=10'b0000_0001_11;5'd17 : pwm_1=10'b0000_0000_11;endcase$display("pwm_1: ",pwm_1);counter2=0;endelse counter2=counter2+1;pwm_2=pwm_1[counter2];endassign pwma=pwm_1;assign pwmb=pwm_2;endmodule
(2)tb文件:
`timescale 1ns/100ps
module tb_PWM;reg clk;wire [9:0]pwma;wire [0:0]pwmb;parameter PERIOD=10;always #(PERIOD/2) clk=~clk;initial beginclk=0;# 3000 $stop;endPWM PWM_1(.clk(clk),.pwma(pwma), .pwmb(pwmb));endmodule
(3)仿真结果:
3、最后大口地呼吸
呼吸灯的硬件实现,和流水灯的硬件实现一样原理,如果每个亮度的时间跟仿真的时候一样的话,那我们是看不出亮度变化,所以在硬件实现的时候需要在每一个亮度延长一定的时间。具体的实现如下:
(1)代码:
module PWM(input wire clk,output wire led0,output wire led1,output wire led2,output wire led3,output wire led4,output wire led5,output wire led6,output wire led7);reg [4:0]counter1=0;reg [3:0]counter2=0;reg [9:0]pwm_1=10'b0000_0000_00;reg[0:0] pwm_2;reg [20:0] cnt_base;parameter T_6ms = 21'd2000_000;always @(posedge clk ) beginif(cnt_base < T_6ms - 1'b1)begincnt_base <= cnt_base + 1'b1;pwm_2<=pwm_1[cnt_base%10];endelse begincnt_base <= 21'd0;if(counter1==5'd17) counter1=0;else counter1=counter1+1; case(counter1)5'd0 : pwm_1=10'b0000_0000_01;5'd1 : pwm_1=10'b0000_0000_11;5'd2 : pwm_1=10'b0000_0001_11;5'd3 : pwm_1=10'b0000_0011_11;5'd4 : pwm_1=10'b0000_0111_11;5'd5 : pwm_1=10'b0000_1111_11;5'd6 : pwm_1=10'b0001_1111_11;5'd7 : pwm_1=10'b0011_1111_11;5'd8 : pwm_1=10'b0111_1111_11;5'd9 : pwm_1=10'b1111_1111_11;5'd10 : pwm_1=10'b0111_1111_11;5'd11 : pwm_1=10'b0011_1111_11;5'd12 : pwm_1=10'b0001_1111_11;5'd13 : pwm_1=10'b0000_1111_11;5'd14 : pwm_1=10'b0000_0111_11;5'd15 : pwm_1=10'b0000_0011_11;5'd16 : pwm_1=10'b0000_0001_11;5'd17 : pwm_1=10'b0000_0000_11;endcaseendendassign led0=pwm_2;assign led1=pwm_2;assign led2=pwm_2;assign led3=pwm_2;assign led4=pwm_2;assign led5=pwm_2;assign led6=pwm_2;assign led7=pwm_2;endmodule
(2)对应的RTL图:
(3)引脚分配与接线
接线同上流水灯的接线。
(4)实验现象:
具体实验现象可以看文末😏
FPGA点灯工程师养成记
Forever young,always tearful. 😏
相关文章:
![](https://img-blog.csdnimg.cn/0345e8de46694dc8a249c6a223fcc8a6.png)
【FPGA实验1】FPGA点灯工程师养成记
对于FPGA几个与LED相关的实验(包括按键点灯、流水灯、呼吸灯等)的记录,方便日后查看。这世界上就又多了一个FPGA点灯工程师了😏 成为一个FPGA点灯工程师分三步:一、按键点灯1、按键点灯程序2、硬件实现二、流水灯1、流…...
![](https://img-blog.csdnimg.cn/c6d713679f8c4c51a2ab81041ed22b7e.png)
操作系统论文导读(三):Stack-based scheduling of realtime processes基于堆栈的实时进程调度
目录 一、论文核心思想: 二、基本的相关条件 作业运行的条件: 作业抢占其他作业的条件: 三、基本的相关定义 四、基本的相关调度 五、基本的相关调度 六、堆栈资源共享 七、与PCP的比较 一、论文核心思想: -引入了一个抢占优…...
![](https://www.ngui.cc/images/no-images.jpg)
音频延时测试方法与实现
音频延时测试方法有以下几种 1、使用专业的测试设备,通过专业的音频测试仪器可以准确测量音频延时,如常见声学分析仪、信号发生器、声卡Smaart(介绍测试延时方法链接:https://blog.csdn.net/weixin_48408892/article/details/1273…...
![](https://www.ngui.cc/images/no-images.jpg)
在 Python 中管理机密的四种方法
我们生活在一个应用程序用于做任何事情的世界,无论是股票交易还是预订沙龙,但在幕后,连接是使用秘密完成的。必须适当管理机密,例如数据库密码、API 密钥、令牌等,以避免任何泄露。 管理机密的需求对任何组织都至关重…...
![](https://www.ngui.cc/images/no-images.jpg)
全国青少年信息素养大赛Python编程挑战赛初赛试题说明
Python 编程挑战赛初赛采用线上考试比赛形式,分为小学组和初中组。不同组别的考核重难点略有不同,考核内容主要是 Python 基础知识,共 30 题,均为单选题,具体考核如下: 小学组考核内容主要是 Python 基础知识,包括输入输出,变量,条件结构,计次循环和无限循环,海龟库…...
![](https://img-blog.csdnimg.cn/0fc52e80716941e39883a0f07379def2.gif)
无需魔法打开即用的 AI 工具集锦
作者:明明如月学长, CSDN 博客专家,蚂蚁集团高级 Java 工程师,《性能优化方法论》作者、《解锁大厂思维:剖析《阿里巴巴Java开发手册》》、《再学经典:《EffectiveJava》独家解析》专栏作者。 热门文章推荐…...
![](https://img-blog.csdnimg.cn/img_convert/38111bed7d48ddec74973dc8a560b9b1.jpeg)
如何进行SEO站内优化,让你的网站更易被搜索引擎收录
我们了解了 SEO 的流程,知道了哪些元素对 SEO 的效果会产生关键影响,接下来,我们就该正式开始动手,打造一个让搜索引擎“爱不释手”的网站。 为了方便理解与记忆,我们将网站划分为几个模块,告诉你优化网站…...
![](https://img-blog.csdnimg.cn/72bd3cc0237a478ca73e8960c5d7ed58.png)
组件内部watch后切换数据报错Error in callback for watcher “xxxx“
报错信息: 报错代码: 百度了一下是因为这里写了箭头函数,导致this指向为父级作用域上下文,不是vue实例导致 修改为: progressData: {handler: function(newValue, oldValue) {this.setChartData(newValue)},deep: …...
![](https://img-blog.csdnimg.cn/img_convert/12cc64701b7d90b0147d887aa1cf05b7.png)
VMware ESXi 7.0 U3l macOS Unlocker OEM BIOS (标准版和厂商定制版)
VMware ESXi 7.0 U3l macOS Unlocker & OEM BIOS (标准版和厂商定制版) 提供标准版和 Dell (戴尔)、HPE (慧与)、Lenovo (联想)、Inspur (浪潮)、Cisco (思科) 定制版镜像 请访问原文链接:https://sysin.org/blog/vmware-esxi-7-u3-oem/,查看最新版…...
![](https://img-blog.csdnimg.cn/1ee0f3cd67e34c419dee6962561abfea.png)
华为阿里版ChatGPT横空出世,谁的成效更好呢?
“你训练的大模型涌现了吗?”“还没有。好难受。”一时间成为了最近AI赛道玩家的一个爆热梗。 不管承不承认,相信每个玩家都不愿意输掉这场激烈的竞争。自百度成为国内“第一个吃螃蟹的人”后,又有两大中国科技巨头做好了准备——华为和阿里…...
![](https://www.ngui.cc/images/no-images.jpg)
【云原生之Docker实战】使用docker部署kooteam在线团队协作工具
【云原生之Docker实战】使用docker部署kooteam在线团队协作工具 一、kooteam介绍1.kooteam介绍2.kooteam的技术选型二、检查本地docker环境1.检查Docker版本2.检查Docker状态三、下载kooteam镜像四、部署kooteam文档管理系统1.创建安装目录2.创建mysql数据库3.新建kooteam数据库…...
![](https://www.ngui.cc/images/no-images.jpg)
ITSS认证是什么认证,itss资质认证
一、ITSS是什么 ITSS根据英文翻译信息技术服务标准(InformationTechnologyServiceStandards,简称ITSS),它既是一套成体系和综合配套的标准库,又是一套选择和提供IT服务的方法学,对企业IT服务而言࿰…...
![](https://img-blog.csdnimg.cn/04fa4675a5224f8e8fe7be574b611135.png)
FTP-----局域网内部远程桌面
此文包含详细的图文教程。有疑问评论区留言。博主第一时间解决。 目录 一、被远程桌面的电脑 1.开启远程权限 2.添加账户,有本地账户跳过这步 3.帐号隶属于 远程桌面 4.帐号隶属于 本地用户组 二、本地电脑连接远程桌面 前提条件: 1.两台电脑在…...
![](https://img-blog.csdnimg.cn/4bd81624e3bc4f95bcb8e805777eddec.png#pic_center)
Learning C++ No.18【STL No.8】
引言: 北京时间:2023/3/18/21:47,周末,不摆烂,但是欠钱终于还是遭报应了,导致坐牢7小时(上午3.5,下午3.5),难受,充分意识到行哥是那么的和蔼可亲…...
![](https://img-blog.csdnimg.cn/ee84c80280ff476cbcd7e6218fca7092.png)
pytorch搭建ResNet50实现鸟类识别
🍨 本文为🔗365天深度学习训练营 中的学习记录博客 🍦 参考文章地址: 365天深度学习训练营-第J1周:ResNet-50算法实战与解析 🍖 作者:K同学啊 理论知识储备 深度残差网络ResNet(dee…...
![](https://img-blog.csdnimg.cn/a41638877cc6437995168433ebba65c8.png#pic_center)
Node.js -- npm与包
1.包 Node.js中的第三方模块又叫做包 就像电脑和计算机指的是相同的东西,第三方模块和包指的是同一概念,只不过叫法不同。 包的来源: 包是由第三方或者个人团队开发出来的,免费供个人使用。 国外有一家IT 公司,叫做n…...
![](https://img-blog.csdnimg.cn/74a9837ebcb444c686de2c274844d888.jpeg#pic_center)
二 、Locust自定义用户(场景)
二 、自定义用户(场景) 一个用户类代表了你系统中的一种用户/场景。当你做一个测试运行时,你指定你想模拟的并发用户的数量,Locust将为每个用户创建一个实例。你可以给这些类/实例添加任何你喜欢的属性,但有一些属性对…...
![](https://img-blog.csdnimg.cn/7d2aaf8d51d14a8e829095c8280a0398.png)
1~3年的测试工程师薪资陷入了瓶颈期,如何突破自己实现涨薪?
对于技术人员而言,职业规划一般分为两个方向:做技术、做管理。进入软件测试行业的新人都会从最基础的执行开始,然后是基本的功能测试。 随后大家会根据个人职业发展来进一步细化,有的走管理路线,成为主管、经理、项目…...
![](https://www.ngui.cc/images/no-images.jpg)
springboot项目前端ajax 07进阶优化,使用jQuery的ajax
使用官网https://jquery.com/ 在下载那里,选择Download the compressed, production jQuery 3.6.4(版本不一样),而后在打开的网页中,选择另存为,就下载好了js文件。 > function doAjax(){ …...
![](https://www.ngui.cc/images/no-images.jpg)
东数西存场景的探索与实践
“东数西算”是通过构建数据中心、云计算、大数据一体化的新型算力网络体系,将东部算力需求有序引导到西部,对优化数据中心建设布局,提升国家整体算力水平,促进绿色发展,扩大有效投资,具有重要意义。 在实…...
![](https://www.ngui.cc/images/no-images.jpg)
[图神经网络]PyTorch简单实现一个GCN
Pytorch自带一个PyG的图神经网络库,和构建卷积神经网络类似。不同于卷积神经网络仅需重构__init__( )和forward( )两个函数,PyTorch必须额外重构propagate( )和message( )函数。 一、环境构建 ①安装torch_geometric包。 pip install torch_geometric …...
![](https://img-blog.csdnimg.cn/d7c28023f39d435681d633efb9673696.png)
Elasticsearch(黑马)
初识elasticsearch . 安装elasticsearch 1.部署单点es 1.1.创建网络 因为我们还需要部署kibana容器,因此需要让es和kibana容器互联。这里先创建一个网络: docker network create es-net 1.2.加载镜像 这里我们采用elasticsearch的7.12.1版本的…...
![](https://www.ngui.cc/images/no-images.jpg)
oracle数据库调整字段类型
oracle数据库更改字段类型比较墨迹,因为如果该字段有值,是不允许直接更改字段类型的。另外oralce不支持在指定的某个字段后面新增一个字段,但是mysql数据可以向指定的字段后面新增一个字段。 mysql向指定字段后面新增一个字段: al…...
![](https://img-blog.csdnimg.cn/e2fe2f2649c54c608fe6c150837009c3.gif)
面部表情识别2:Pytorch实现表情识别(含表情识别数据集和训练代码)
面部表情识别2:Pytorch实现表情识别(含表情识别数据集和训练代码) 目录 面部表情识别2:Pytorch实现表情识别(含表情识别数据集和训练代码) 1.面部表情识别方法 2.面部表情识别数据集 (1)表情识别数据集说明 (2&…...
![](https://img-blog.csdnimg.cn/img_convert/22f0529f04212c69cc4773cb607a6a5f.png)
赛效:如何在线给图片加水印
学会给图片加水印是一个非常实用的技能,可以让你的图片更具保护性和个性化。说到加水印,很多人不知道怎么操作。其实,给图片加水印非常简单,不用下载任何程序,在线就能完成。今天,我将介绍如何使用改图宝在…...
![](https://img-blog.csdnimg.cn/img_convert/d7f5fc50455382017acebbee5ed28fae.png)
动力节点杜老师Vue笔记——Vue程序初体验
一、Vue程序初体验 我们可以先不去了解Vue框架的发展历史、Vue框架有什么特点、Vue是谁开发的,这些对我们编写Vue程序起不到太大的作用,更何况现在说了一些特点之后,我们也没有办法彻底理解它,因此我们可以先学会用,使…...
![](https://img-blog.csdnimg.cn/20974e3d29fa446dbaa3a8a4cc5213b8.png)
ajax上传图片存入到指定的文件夹并回显
html代码: <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>Title</title><script src"js/jquery-2.1.0.js"></script> </head> <body> <form…...
![](https://www.ngui.cc/images/no-images.jpg)
cesium加载cesiumlab切的影像切片和标准TMS瓦片的区别
1.加载cesiumlab切的影像 var labImg viewer.scene.imageryLayers.addImageryProvider( new Cesium.UrlTemplateImageryProvider({url:http://192.168.1.25:8080/DOMtms/{z}/{x}/{y}.png,fileExtension : "png"})); 2.标准TMS瓦片 var labImg viewer.scene.im…...
![](https://img-blog.csdnimg.cn/5de72c299d62427ab9d7aa9e780c7798.png)
第二周P9-P22
文章目录第三章 系统总线3.1、总线的基本概念一、为什么要用总线二、什么是总线三、总线上信息的传送四、总线结构的计算机举例1、单总线结构框图2、面向CPU的双总线结构框图3、以存储器为中心的双总线结构图3.2、总线的分类1、片内总线2、系统总线3、通信走线3.3、总线特性及性…...
![](https://www.ngui.cc/images/no-images.jpg)
java反射
文章目录何为反射?反射的应用场景了解么?谈谈反射机制的优缺点优点缺点反射实战获取 Class 对象的四种方式1. 知道具体类的情况下可以使用TargetObject.class:2. 通过 Class.forName()传入类的全路径获取:3. 通过对象实例instance…...
![](/images/no-images.jpg)
jsp技术做网站有什么特点/seo友情链接
Grand Central Dispatch(GCD)是异步执行任务的技术之一。一般将应用程序中记述的线程管理用的代码在系统级中实现。开发者只需要定义想执行的任务并追加到适当的Dispatch Queue中,GCD就能生成必要的线程并计划执行任务。由于线程管理是作为系…...
![](/images/no-images.jpg)
房山手机网站建设/seo外包公司报价
坑。 我想找的是一个网站,输入两种颜色之后,能够生成合并的颜色。...
![](/images/no-images.jpg)
淘宝上做网站的靠谱吗/小程序开发平台
1. 按2. 规律总结3. 代码示例 3.1. 拷贝内置对象类型3.2. 拷贝自定义对象类型 1. 按 Python有个内置的copy的模块专门用于处理深拷贝与浅拷贝,很实用,用起来也很方便,能为我们省去不少麻烦,不用自己再写深拷贝或者浅拷贝对象的方…...
![](https://www.oschina.net/img/hot3.png)
建设部网站2015年第158号/信阳seo公司
2019独角兽企业重金招聘Python工程师标准>>> awk: 流式编辑器,针对文档的行来操作,awk兼有sed的所有功能, awk是一种编程语言,用于在linux/unix下对文本和数据进行处理。数据可以来自标准输入(stdin)、一个或多个文件,或其它命令的…...
![](/images/no-images.jpg)
做网站的电话号码/网络营销岗位描述的内容
Thread.sleep(long millis),一定是当前线程调用此方法,当前线程进入阻塞,但不释放对象锁,millis后线程自动苏醒进入可运行状态。Thread.yield(),一定是当前线程调用此方法,当前线程放弃获取的cpu时间片&…...
![](/images/no-images.jpg)
wordpress 主题js/搜索引擎大全排行榜
js受制于单个页面,用ifream框架做web系统,会遇到角色切换菜单刷新的问题,我就来讲一下我的思路: 用户登录时将用户角色放入session中,以角色id为key,权限为值,角色切换时将相应角色id传入后台,取…...