很实用的Verilog实例!目录:王金明:《VerilogHDL程序设计教程》程序例子,带说明。
【例3.1】4位全加器【例3.2】4位计数器【例3.3】4位全加器的仿真程序【例3.4】4位计数器的仿真程序【例3.5】“与-或-非”门电路【例5.1】用case语句描述的4选1数据选择器【例5.2】同步置数、同步清零的计数器【例5.4】用initial过程语句对测试变量A、B、C赋值【例5.5】用begin-end串行块产生信号波形【例5.6】用fork-join并行块产生信号波形【例5.7】持续赋值方式定义的2选1多路选择器【例5.8】阻塞赋值方式定义的2选1多路选择器【例5.9】非阻塞赋值【例5.10】阻塞赋值【例5.11】模为60的BCD码加法计数器【例5.12】BCD码—七段数码管显示译码器【例5.13】用casez描述的数据选择器【例5.15】用for语句描述的七人投票表决器【例5.16】用for语句实现2个8位数相乘【例5.17】用repeat实现8位二进制数的乘法【例5.18】同一循环的不同实现方式【例5.19】使用了`include语句的16位加法器【例5.20】条件编译举例【例6.1】加法计数器中的进程【例6.2】任务举例【例6.3】测试程序【例6.4】函数【例6.5】用函数和case语句描述的编码器(不含优先顺序)【例6.6】阶乘运算函数【例6.7】测试程序【例6.8】顺序执行模块1【例6.9】顺序执行模块2【例6.10】并行执行模块1【例6.11】并行执行模块2【例7.1】调用门元件实现的4选1MUX【例7.2】用case语句描述的4选1MUX【例7.3】行为描述方式实现的4位计数器【例7.4】数据流方式描述的4选1MUX【例7.5】用条件运算符描述的4选1MUX【例7.6】门级结构描述的2选1MUX【例7.7】行为描述的2选1MUX【例7.8】数据流描述的2选1MUX【例7.9】调用门元件实现的1位半加器【例7.10】数据流方式描述的1位半加器【例7.11】采用行为描述的1位半加器【例7.12】采用行为描述的1位半加器【例7.13】调用门元件实现的1位全加器【例7.14】数据流描述的1位全加器【例7.15】1位全加器【例7.16】行为描述的1位全加器【例7.17】混合描述的1位全加器【例7.18】结构描述的4位级连全加器【例7.19】数据流描述的4位全加器【例7.20】行为描述的4位全加器【例8.1】$time与$realtime的区别【例8.2】$random函数的使用【例8.3】1位全加器进位输出UDP元件【例8.4】包含x态输入的1位全加器进位输出UDP元件【例8.5】用简缩符“?”表述的1位全加器进位输出UDP元件【例8.6】3选1多路选择器UDP元件【例8.7】电平敏感的1位数据锁存器UDP元件【例8.8】上升沿触发的D触发器UDP元件【例8.9】带异步置1和异步清零的上升沿触发的D触发器UDP元件【例8.12】延迟定义块举例【例8.13】激励波形的描述【例8.15】用always过程块产生两个时钟信号【例8.17】存储器在仿真程序中的使用【例8.18】8位乘法器的仿真程序【例8.19】8位加法器的仿真程序【例8.20】2选1多路选择器的仿真【例8.21】8位计数器的仿真【例9.1】基本门电路的几种描述方法【例9.2】用bufif1关键字描述的三态门【例9.3】用assign语句描述的三态门【例9.4】三态双向驱动器【例9.5】三态双向驱动器【例9.6】3-8译码器【例9.7】8-3优先编码器【例9.8】用函数定义的8-3优先编码器【例9.9】七段数码管译码器【例9.10】奇偶校验位产生器【例9.11】用if-else语句描述的4选1MUX【例9.12】用case语句描述的4选1MUX【例9.13】用组合电路实现的ROM【例9.14】基本D触发器【例9.15】带异步清0、异步置1的
2020/10/10 20:05:56 127KB Verilog 实例 经典
1
实验一Linux系统的安装及用户界面的使用一.实验目的1.了解Linux系统的安装、熟悉系统的启动过程和使用环境。
2.掌握Linux环境下vi编辑器的使用方法。
3.掌握Linux系统中编辑、编译、调试、运行一个C语言程序的全过程。
二.实验内容1、实验要求1.在VMWare虚拟机环境或真实物理机器上,安装一个Linux操作系统。
2.体验Linux操作系统中XWindows系统的使用。
3.尝试Linux系统键盘命令的使用,并熟练掌握常用的基本命令。
4.掌握命令行方式下vi编辑器的使用。
5.编写一段C程序,使用系统调用fork()创建两个子进程。
各进程显示不同的信息,如父进程显示字符“a”,子进程分别显示字符“b”和“c”。
多次运行观察显示结果,并分析产生这种执行效果的原因。
实验二Linux进程控制一.实验目的1.掌握进程的概念,明确进程和程序的区别。
2.认识和了解并发执行的实质。
二.实验内容1、实验要求1.编写一段程序,使用系统调用fork()创建两个子进程。
各进程显示不同的信息,如父进程显示字符“a”,子进程分别显示字符“b”和“c”。
多次运行观察显示结果,并分析产生这种执行效果的原因。
2.修改上面编写的程序,将每个进程的输出由单个字符改为循环输出一句话,如父进程显示:“parent:”加上进程ID,子进程分别显示:“Child1:”(或“Child2:”)加上自己的进程ID。
再观察程序执行时屏幕上出现的现象,并分析原因。
3.一个父进程创建一个子进程,子进程通过exec系统调用执行另一个文件。
各自的代码中显示不同的信息,观察其运行结果,分析两个进程并发执行的效果。
4.编写程序创建如图所示的进程树,在每个进程中显示当前进程ID和父进程ID。
实验三Linux进程间通信一.实验目的(1)分析进程争用临界资源的现象,学习处理进程互斥的方法;
(2)学习如何利用进程的“软中断”、管道机制进行进程间的通信,并加深对上述通信机制的理解;
(3)了解系统调用pipe()、msgget()、msgsnd()、msgrcv()、msgctl()、shmget()、shmat()、shmdt()、shmctl()的功能和实现过程,利用共享存储区机制进行进程间通信。
二、实验内容1、实验要求(1)进程的控制修改已编制的程序,将每个进程输出一个字符修改为每个进程输出一句话,再观察程序执行时屏幕上出现的现象,并分析出现问题的原因,进一步理解各个进程争夺临界资源的情况。
如果在程序中使用系统调用locking()来给每一个进程加锁,可以实现进程之间的互斥,试观察并分析出现的现象。
(2)进程的软中断通讯编制一段程序,实现进程的软中断通讯:使用系统调用fork()创建两个子进程;
再使用系统调用signal()让父进程捕捉键盘上来的中断信号(即按Del键);
在捕捉到中断信号后,父进程用系统调用kill()向两个子进程发信号;
子进程捕捉到信号后分别输出下列信息后终止:Childprocess1iskilledbyparent!Childprocess2iskilledbyparent!父进程等待两个子进程都终止以后,输出如下信息后终止:Parentprocessinkilled!(3)进程的管道通讯编制一段程序,实现进程的管道通讯:使用系统调用pipe()建立一条管道线;
两个子进程分别循环向这条管道写一句话:Child1issendingamessage!Child2issendingamessage!而父进程则循环从管道中读出信息,显示在屏幕上。
实验报告内含源代码
2019/6/17 5:27:26 267KB ubuntu
1
SystemVerilog的听课学习笔记,包括讲义截取、知识点记录、注意事项等细节的标注。
目录如下:第一章SV环境构建常识 1 1.1数据类型 1 四、二值逻辑 4 定宽数组 9 foreach 13 动态数组 16 队列 19 关联数组 21 枚举类型 23 字符串 25 1.2过程块和方法 27 initial和always 30 function逻辑电路 33 task时序电路 35 动态静态变量 39 1.3设计例化和连接 45第二章验证的方法 393 动态仿真 395 静态检查 397 虚拟模型 403 硬件加速 405 效能验证 408 功能验证 410第三章SV组件实现 99 3.1接口 100 什么是interface 101 接口的优势 108 3.2采样和数据驱动 112 竞争问题 113 接口中的时序块clocking 123 利于clocking的驱动 133 3.3测试的开始和结束 136 仿真开始 139 program隐式结束 143 program显式结束 145 软件域program 147 3.4调试方法 150第四章验证的计划 166 4.1计划概述 166 4.2计划的内容 173 4.3计划的实现 185 4.4计划的进程评估 194第五章验证的管理 277 6.1验证的周期检查 277 6.2管理三要素 291 6.3验证的收敛 303 6.4问题追踪 314 6.5团队建设 321 6.6验证的专业化 330第六章验证平台的结构 48 2.1测试平台 49 2.2硬件设计描述 55 MCDF接口描述 58 MCDF接口时序 62 MCDF寄存器描述 65 2.3激励发生器 67 channelinitiator 72 registerinitiator 73 2.4监测器 74 2.5比较器 81 2.6验证结构 95第七章激励发生封装:类 209 5.1概述 209 5.2类的成员 233 5.3类的继承 245 三种类型权限protected/local/public 247 thissuper 253 成员覆盖 257 5.4句柄的使用 263 5.5包的使用 269第八章激励发生的随机化 340 7.1随机约束和分布 340 权重分布 353 条件约束 355 7.2约束块控制 358 7.3随机函数 366 7.4数组约束 373 7.5随机控制 388第九章线程与通信 432 9.1线程的使用 432 9.2线程的控制 441 三个fork...join 443 等待衍生线程 451 停止线程disable 451 9.3线程的通信 458第十章进程评估:覆盖率 495 10.1覆盖率类型 495 10.2功能覆盖策略 510 10.3覆盖组 516 10.4数据采样 524 10.5覆盖选项 544 10.6数据分析 550第十一章SV语言核心进阶 552 11.1类型转换 552 11.2虚方法 564 11.3对象拷贝 575 11.4回调函数 584 11.5参数化的类 590第十二章UVM简介 392 8.2UVM简介 414 8.3UVM组件 420 8.4UVM环境 425
2022/10/19 15:18:43 47.25MB systemverilog
1
Imadethisfilebycollectingkindsofpapertestinformationonlineinabouthalfayear.Imadeitpublictohelptheoneshuntingforjobslikemyselflastyear.Ifanythingiswrong,PleasecontactmebyCSDNorPekingMomentatgmaildotcom.Youcanprintornotethisfilebyyourselfwithout纸上谈兵刖音………操作系统及linux141.进程与线程1)同步机伟142)进程通信…153)同步与通信4)进程调度165)多进程与多线程的区别….176)死锁177〕)进程与线程182.fork““““““““““““““183.Linux……………204,RAID215.测试….1面道面准216.堆栈数据代码区…227.文件读写n1道面1面面主B1231)fclose(………232)fopen233fseek0.244)fread245)fwrite(…248.硬链接与软链接25.C++与面向对象语言261.C语言基础问题…26GoogLe+@http://dwz.cn/fada5CsdN@http://dwz.cn/as2ik1)关于const的问题262)浅复制与深复制.….3)逆波兰表达式4)C语言变长参数0a品275)调用约定…276)寄存器287)关于内联数inline288PACK....289)正则表达式29内存操作…2911)四种强制类型转换3112sizeof…3113)动态库与静态库3214)压栈·优先级·位序·宏·Union·指针3215)new&malloc…3516)enum352.面冋对象编程面面面351)构造函数虚函数静态成员函数……352)copy&assignment…363)列表初始化374)多态…375)静态绑定与动态绑定386Explicitmutablevolatileinternal397)承继…398〕)堆栈溢出面主1面主面:aat409)重载操作符4010)Final1C+413.设计模式..411)UTF编码协议…41〕)创建型模式(creationalpattern)……413)单例模式1面ai1面424)策略模式……主主主基主主主主425)MVC……,436)PIMPL…....“4.437)RAIL444STL441)Vector.…442]upper_bound&lower_bound45mAp45数据结构461.树.1461)基本知识…462)几个问题463)完全二叉树(Completebinarytree)…544)次优查找树555)最优二叉树霍大曼树……556)BST:Search/insert/delete567)平衡二叉树与AVL树8)B树与B+树579)红黑树592.栈59GoogLe+@http://dwz.cn/fada5Csdn@http://dwz.cn/as2ik1)括号配对593.链表…611)单向链表交点问题612)链表内环的存在间题623)链表逆置反向存储…634)将两个排序好的链表归并4.图.面道盖主1651)某本知识….,…652)图的表示…,1面自1主主主日1面主65)DFS&BFS…....…64D&b&FWalgorithm685)应用主自着面695.排序701)基木知识…702)快速排序…713)插入排序724)希尔排序……725)选
2019/6/12 15:57:15 2.11MB 笔试 程序员 PaperTest
1
fork是一个经管git代码的一个可视化客户端
2017/6/15 20:53:56 46.28MB fork git git可视化工具
1
服务器端利用I/O复用同时支持TCP和UDP,在同一个端口上同时绑定TCP套接口和UDP套接口,使用select()函数等待读写就绪条件的发生,然后经过FD_ISSET(listenfd,&rset)和FD_ISSET(listenfd,&rset)判断是TCP就绪还是UDP就绪。
使用fork()函数利用子进程处理并行客户,从而达到多个客户进行聊天。
当客户端从标准输入中输入信息,发送到服务器端,服务器接收信息并记录,又立即发送给除发送端之外的所有已连接客户,其他客户就可以看到聊天信息了,最终实现多个客户进行聊天的聊天室。
2018/9/22 3:30:32 788KB 课程设计
1
局部代码(内含3个例子,1分绝对划算):functionyc0=GM1(x0,N)%x0istheoriginaldata,%Nisthenumberyouwanttopredict.n=length(x0);fori=1:nx1(i)=sum(x0(1:i));end%fork=2:n%紧邻均生成z%z(k)=0.5*x1(k)+0.5*x1(k-1);
2015/4/12 16:07:08 2KB gm灰色模型 matlab源程序代码
1
LibreHardwareMonitor是一个开源的硬件传感器读取与监控工具,支持大多数的硬件监控芯片,包括主板、CPU、内存、显卡GPU、硬盘、网卡等设备,可实时监测温度传感器、风扇转速、电压、系统负载和时钟速度。
  LibreHardwareMonitor是在开源软件OpenHardwareMonitor基础上开发的,相当于后者的增强版本。
  据gHacks引见,由于OpenHardwareMonitor曾经停止更新了很长时间,LibreHardwareMonitor开发者就fork其代码仓库后继续更新,并添加了额外的功能。
不过现在OpenHardwareMonitor也恢复了更新。
2018/6/16 7:10:18 1.39MB 硬件温度监测 检测 温度 硬件
1
实验目的:了解和熟悉linux支持的消息通信机制。
任务:使用linux系统提供的系统调用msgget(),msgrev(),msgctl()编制一个长度为1K的消息发送和接受的程序。
实验要求:(1)用一个程序作为“引子”,先后fork()两个进程,SERVER和CLIENT,进行通信。
(2)SERVER端建立一个Key为75的消息队列,等待其他进程发来的消息。
当遇到类型为1的消息,则作为结束信号,取消该队列,并退出SERVER。
SERVER每接遭到一个消息后显示一句“(Server)received”。
(3)CLIENT端使用key为75的消息队列,先后发送类型从10到1的消息,然后退出。
最后一个消息,即是SERVER端需要的结束信号。
CLIENT每发送一条消息后显示一句“(Client)sent”。
(4)父进程在SERVER和CLIENT都退出后结束。
2019/2/16 10:21:34 1KB linux
1
自动绿自动保持GitHub提交状态常绿。
一天的约会会让你的女朋友远离。
原理使用GitHubActions的定时任务功能,每隔一段时间自动执行gitcommit,提交信息为“一天的提交会使您的女朋友远离”,灵感来自知乎问题下某匿名用户的回答:曾经保持了200多天全绿,但是冷落了女朋友,不断绿到现在。
使用点右上角使用此模板按钮复制本GitHub仓库,:warning:千万不要Fork,因为fork项目的动态并不会使你变绿:warning:修改为自己的GitHub的账号和昵称(任选)您可以通过修改来调整频率计划任务语法有5个分割,中间用空格分隔,每个细分代表一个时间单位。
┌─────────────分钟(0-59)│┌─────────────小时(0-23)││┌─────────────日(1-31)│││┌─────────────月
2022/9/3 19:12:00 3KB
1
共 43 条记录 首页 上一页 下一页 尾页
在日常工作中,钉钉打卡成了我生活中不可或缺的一部分。然而,有时候这个看似简单的任务却给我带来了不少烦恼。 每天早晚,我总是得牢记打开钉钉应用,点击"工作台",再找到"考勤打卡"进行签到。有时候因为工作忙碌,会忘记打卡,导致考勤异常,影响当月的工作评价。而且,由于我使用的是苹果手机,有时候系统更新后,钉钉的某些功能会出现异常,使得打卡变得更加麻烦。 另外,我的家人使用的是安卓手机,他们也经常抱怨钉钉打卡的繁琐。尤其是对于那些不太熟悉手机操作的长辈来说,每次打卡都是一次挑战。他们总是担心自己会操作失误,导致打卡失败。 为了解决这些烦恼,我开始思考是否可以通过编写一个全自动化脚本来实现钉钉打卡。经过一段时间的摸索和学习,我终于成功编写出了一个适用于苹果和安卓系统的钉钉打卡脚本。
2024-04-09 15:03 15KB 钉钉 钉钉打卡