verilog仿真——数值比较器74HC85

任务 实现74HC85的程序设计与仿真 用74HC85连接成1个16位的数值比较器 74HC85 程序设计 仿真 16位数值比较器 串行接法 思路 将上一级的比较结果传递下去,级联最后一级得到最终结果. 同样将最初的输入端保留,以便更多数位级联 程序设计 仿真 并行接法 思路 考虑到芯片实际使用过程中的延迟问题,采取并行接法,同时比较4组数据,并把4组数据的比较结果传入最终结果,起到以空间换时间的效果 程序设计 仿真

verilog仿真——8选1数据选择器74HC151

任务 实现74HC151的程序设计与仿真 用两片74HC151连接成1个16选1的数据选择器 74HC151 思路 数据选择器介绍 参照芯片的引脚设计 程序设计 仿真 16选1数据选择器 思路 用两片实现,则1片代表高8位,1片代表低8位 当选择端最高位有效时,从高8位中的数据端读取;反之,从低8位中的数据端读取 程序设计 仿真

verilog仿真——7段显示译码器74HC4511

任务 实现74HC4511的程序设计与仿真 思路 根据芯片的真值表直接设计,输入与输出的对应关系。 将输入端口的各功能对应实现: //D[3:0] 为输入信号 //Y[6:0] 译码器输出编码 //LT_n:灯测试输入,低电平有效,所有输出置1,检查好坏 //BL_n:当灭灯输入;当LT_n无效时,低电平有效,所有输出置0,清晰显示 //LE:译码器锁存使能输入;当LT_n与BL_n皆无效时,高电平有效,则译码器显示不变化 对于低电平有效的信号,应该以一个下划线跟一个小写字母b 或n 表示。注意在同一个设计中要使用同一个小写字母表示低电平有效 这里采用XX_n 程序设计 仿真 错误 模块命名不能以数字开头

verilog仿真——3线-8线译码器74X138

任务 实现74X138的程序设计 用74X139和74X138构成5线-32线译码器 74LS139 为两个2线-4 线译码器 74X138 思路 参考译码器芯片的功能,进行输入端口到输出端口的对应,并实现相关输入控制端口的特性。 程序设计 仿真 74LS139 思路 根据功能表进行设计 程序设计 仿真 5线-32线译码器 思路 4个74X138做为输出,分别为X3,X2,X1,X0 而1片74LS139做为最高2位的选择,分别对应4片74X138 程序设计 仿真

verilog仿真——8线-3线优先编码器CD4532

任务 实现CD4532的设计与仿真 用2片CD4532构成16线-4线优先编码器 CD4532 实现思路 根据示例基本掌握verilog的语法,可以进行自主设计。 原本想通过逻辑表达式将编码器的内部逻辑表达,但看到示例中有用到case的语法,是人易读的表达方式,因此改为用case语句将输入信号映射至对应的输出编码。 对于优先编码问题,涉及到优先级高位有效,忽略低位输入,则采用casex实现,详见代码 原本直接将所有输入输出端口列写,同样看到示例中利用数组结构,更简单易读 设计 注意问题: 赋值语句用 ; 分隔 多个语句利用 begin 和 end成块 注意end和endmodule不要遗漏 仿真 16线-4线优先编码器 实现思路 各用一片接收8线的输入信号,分别用CD1代表高8位,CD0代表低8位,特性是: 只要高8位有效,低8位的输入无效 此时4位编码的高位有效 高8位无效时,读取低8位的输入 高8位与低8位的输入都无效,最终无效 同时,CD4532为我们提供了实现方案: //GS:当EI为1,只要有输入端信号有效,输出为1//EO:当EI为1,且所有输入端为0时,输出为1 结合需求和供给的特性,我们这样做: 将CD1的EO1接至CD0的EO0处 GS1接到编码最高位 CD1与CD0的输出端分别接至编码的低三位 设计 仿真 错误 Illegal output or inout port connection for port ‘EO’. 原因&解决方法 用reg型的输出端口对CD4532进行实例化,加载文件报错,修改为wire型的变量进行实例化,initial的过程语句将wire变量值传递至reg输出端口。

verilog仿真——2选1数据选择器

教程 根据慕课平台上提供的教程文档按步骤操作 进行二选一数据选择器的设计与仿真: 一定要搞明白缩写系列:mux为multiplexer的缩写multiplexer:指多路复用器。是从两个或多个源(2的次方)到一单个信道。与数据选择器的概念一致 设计解读 module是定义模块开始的关键词,以endmodule结束 input与output说明端口类型(信号流方向) 端口数据类型默认为wire 线网型:包括wire/wor/supply1/supply0/… 寄存器类型:包括reg/integer/real(time)/time 过程块语句结构包括initial和always两种 过程赋值语句只能给寄存器类型(包含reg)变量赋值,因此有上程序中提到的必须将输出Y设为reg类型 仿真解读 信号类型 输入用reg:保持输入信号不变 输出用wire:随时监测输出信号的变化 时间线 `timescale 1ns/1ns为编译器语句,进行仿真的总设置 initial代表从初始时间0s开始,每个initial语句段平行 #1代表延时1s 交互语句 $stop;停止仿真不退出,可以继续run $finish;退出仿真 $monitor()编译器窗口输出内容 $time执行语句当前时间 结果图

Django基础——报错和调试记录

报错类型 RuntimeError at /task/register You called this URL via POST, but the URL doesn’t end in a slash and you have APPEND_SLASH set. Django can’t redirect to the slash URL while maintaining POST data. Change your form to point to dev.paas-class.bktencent.com:8000/task/register/ (note the trailing slash), or set APPEND_SLASH=False in your Django settings. 通过ajax写POST请求时,提示需要在路径后面加上slash“/”才可以,即: Template-loader postmortem… Continue reading Django基础——报错和调试记录

Published
Categorized as SaaS Tagged

蓝鲸实践作业——Django基础(二)

在SaaS上要开发一个类似评论功能,需要掌握何从页面上进行数据的异步提交,如何通过Django编写接口,如何通过ORM对数据进行增删改查,如何通过Admin界面管理DB中数据等技术。 题目 1.实现“选择业务”功能。调用cmdb的search_business接口,将获取到的业务渲染到“执行任务”页面的“选择业务”下拉框。2.实现 “选择主机“功能。a> 当页面初次加载时,或”选择业务”下拉框选到某业务时,查询选择主机接口。b> 实现选择主机接口,接收页面传上的json数据。c> 接口调用cmdb的search_host接口,将主机IP, 操作系统等信息返回d> 将返回的IP数据以表格形式渲染,每行显示一台主机 将该功能实现后,上线到生产环境。 思路 选择业务 在model.py中建立search_business表 在admin.py中注册该表 在命令窗口更新 在html中修改代码读取对应值 需要在view.py中将数据表search_business传入 原本担心如何把多个参数传入render函数中,但上次提供的教程采用字典格式,解决我的疑惑。 修改tasks.html遍历businesses 此时,可以现在admin页面增添数据项测试 选择主机 新增一个选择框 内容需要从页面中获取数据 可以筛选出表格的每一行,但出于可重用性考虑,建立主机数据表 与第一步相同,在admin.py中注册,再在命令行窗口更新数据表。之后在admin界面加入数据,在view.py像html传入数据,再修改html渲染传入的数据即可: 同理让选择框读取相应的数据 进行主机的选择 对选择框的内容进行读取,点击提交后,就可以刷新界面,将选定的得出。 通过选择器可以得到目前处于筛选框中的是哪个主机地址。 我们写script实现对页面内容的调整:表格重新加载为指定的那个 一个小小的尝试,实现页面内容的改动:点击提交按钮将表格内容删除。 因此我们只需要将表格只展示为符合条件的主机即可 简单的实现方法:将提交时产生的条件筛选产生新的数据项:再次渲染页面即可 通过ajax直接改变失败 表格中新增一项筛选特定主机 访问成功,提交ajax请求 但并没有减少表格显示,调试发现,此时的页面内容并没有跳转或更新。而且根据需求,最好只进行页面部分内容的更新而非刷新整个页面,继续其他方向的尝试—— 通过属性改变失败 可以把不被标签内的属性设为不可见,但此外不行,因此必须对内容进行替换。 最终方法 实现思路 首先通过逆向分析一个含有表格网页的代码 得知可以获得ajax返回的data并进行处理,找到了思路: 将页面此时拉取的特定主机编号通过ajax返回到筛选特定服务器的函数 函数利用条件筛选出特定主机 将特定主机的数据项返回至data JavaScript通过对data的处理填写入表格 将页面中表格的内容更新为新的表格 实现过程 处理返回为json格式的data数据 数据解析出来: 将表格内容动态替换为新的数据 先测试一组数据 观察格式,调整一下 现在只需要把传入数据替换位置即可… Continue reading 蓝鲸实践作业——Django基础(二)

Published
Categorized as SaaS Tagged

蓝鲸实践作业——Django基础(一)

蓝鲸SaaS推荐基于Django框架进行开发。本节课程的入门级使用详解和实战演示,让你对Django MVC框架结构的每个模块的功能和相互关系有一个深刻的理解和掌握。 1. 在开发框架中拉起上节课的两个静态页面2. 实现“选择脚本”功能。a> 脚本表包含脚本名称和脚本内容两个字段b> 通过admin页面录入三条基本linux命令c> 通过”执行任务”页面的“选择脚本”可进行DB中数据的选择 将该功能实现后,上线到生产环境。 基本操作 进入工程 之前已建立好工程,按照指导贴子在home_application中进行修改,就不需要再创建新应用了(下一步可以忽略) 创建应用 将新应用添加到default.py文件对应位置 编码问题 用notepad将错误的编码修改为utf-8编码即可 admin没有权限登录问题 最初没有添加用户名称,之后遇到登录问题才明白少了步骤。 按照文档,进行第一步的添加user,添加新的migration.py文件,按照说明运行就成功了 go on 按照教程修改文件如下: models.py admin.py 线下成功 上线到生产环境 码云同步 在之前创建的git项目所在地址打开git bash 添加新修改文件 到开发者中心部署 上线后链接正确,但选项处空白:因为这里的admin处还未添加 我们直接在正式部署的环境处修改 进入https://paas-class.bktencent.com/o/【appname】/admin/后按照刚才的过程添加新的脚本 成功显示 选择题 Django的生命周期包含哪些?*多选 匹配成功后走到相对应的views函数,视图函数执行相关的逻辑代码返回执行结果 Django把客户端想要的数据作为一个字符串返回给客户端,客户端接收数据,渲染到页面展现给用户 url经过Django中的wsgi时请求对象创建完成,经过django的中间件,然后到路由系统匹配路由 当用户在浏览器输入url时,浏览器会生成请求头和请求体发送给服务端 下面哪些是Django的内置组件?*多选 model auth form admin 解答 model 是django的架构组成 内置组件: auth auth是django内置的用户认证系统,可以快速的实现登录,注册,注销,修改密码的功能 form form类,来处理web开发中的表单相关事项.form最常做的是对用户输入的内容进行验证,为此django的forms类提供了全面的内容验证和保留用户上次输入数据的支持 form组件的两大功能:… Continue reading 蓝鲸实践作业——Django基础(一)

Published
Categorized as SaaS Tagged

功率放大电路

概念 目标 获得失真较小的输出功率 问题 输出功率尽可能大,电压与电流都有足够大的输出幅度 效率高:有用信号与电源供给功率比(乙类效率最高) 非线性失真小 散热 题目 乙类互补对称功率放大电路如图所示,采用双电源供电,若忽略BJT的饱和压降,则功率管承受的最大反向电压为              。 由于两管处于轮流导通状态,所以当一管导通接近饱和时,另一个处于截止状态的三极管承受了正负两个电源的总压差即VCC-(-VCC)=2VCC. 为了克服功率放大电路的交越失真,图中(a)电路更好。 (×)图示电路中,均可以在一定程度上消除交越失真,但是图(a)所示的电路,两个三极管基极间的电阻对信号会产生压降,导致输出幅值减小;而图(b)电路中的二极管可以等效为恒压降模型,两个二极管相当于两个0.7V左右电压源,它们对交流信号而言可以看作短路,所以可以保证两个三极管基极间的信号电压一致,对信号放大不产生影响。另外,图(a)电阻上的电压会受到电源电压波动的影响,从而改变三极管的静态工作点;而图(b)电路中两个二级管的导通压降受电源电压波动影响很小,从而保持三极管静态工作点稳定。 功率管2N6078室温下的参数为,VCE(max)=250V,IC(max)=7A,PC(max)=45W,若电路工作时VCE=20V,则IC的最大电流为              。 在实际工作时,要根据工作条件核算极限参数带来的约束,因为PC=VCE*IC,所以IC=45W/20V=2.25A,小于IC(max),因此IC的最大电流为2.25A。 微助教 b d b f n(没有负电源