Verliog语法(程序)
Always blocks(conbinational)(总是阻塞(组合))
assign 语句的左侧必须是线网类型,而过程赋值(在 always 块中)的左侧必须是寄存器(reg)类型
Always blocks(clocked)(总是阻塞(时钟))
这里主要讲阻塞赋值与非阻塞性赋值。通常阻塞赋值用于逻辑电路,非阻塞性赋值用于时序电路。
阻塞性赋值也是一句一句执行的,即一句话在上一句结束后才执行赋值。而非阻塞性赋值,是并行执行的。
If statement( If 模块)
If statement lanch( If 模块的锁存器)
我们再写if或者case语句一定要写出else/default,以避免综合时出现锁存器,这是电路不希望的。因为锁存器很容易在信号上产生毛刺;而且也没有时钟信号,不容易进行静态时序分析。
case statement( case 模块)
priority encoder(优先编码器)
priority encoder with case(带casez的优先编码器)
casez语句用来处理不考虑高阻值z的比较过程,casex语句则将高阻值z和不定值都视为不必关心的情况。使用过程中?与z一样。case语句是顺序执行的,其实是个很大的组合逻辑。
也有一种case(1'b1)的写法,也想记录一下如这种,意思为先判断in[0]是否为1,如果为1则执行对应命令,否则去判断in[1]。以此类推
case(1'b1):in[0]: pos = 0;in[1]: pos = 1;in[2]: pos = 2;in[3]: pos = 3;default: pos = 0;endcase
这题我虽然做对了,先放代码如下
module top_module (input [7:0] in,output reg [2:0] pos );
always @(*) begincasez (in)8'bzzzzzzz1: pos = 0; 8'bzzzzzz1z: pos = 1;8'bzzzzz1zz: pos = 2;8'bzzzz1zzz: pos = 3;8'bzzz1zzzz: pos = 4; 8'bzz1zzzzz: pos = 5;8'bz1zzzzzz: pos = 6;8'b1zzzzzzz: pos = 7;default: pos = 0;endcase
end
endmodule
但是我看仿真图总感觉怪怪的,就像当输入为10时,输出居然是4???,希望也有人指正
我用同样的代码,在别的仿真软件上跑了一下,同样的代码发现结果是不一样的,可能是网站的一点问题吧。有没有和我同感这个优先编码器,优先的低位的感觉很不舒服哈哈哈~
Avioding latches(避开锁存器)
module top_module (input [15:0] scancode,output reg left,output reg down,output reg right,output reg up ); always @(*) begincasez (scancode)16'he06b: begin left=1;down=0;right=0;up=0;end16'he072: begin left=0;down=1;right=0;up=0;end16'he074: begin left=0;down=0;right=1;up=0;end16'he075: begin left=0;down=0;right=0;up=1;enddefault: begin left=0;down=0;right=0;up=0;endendcaseend
endmodule
Verliog语法(程序)相关推荐
- Java基本语法-程序流程控制
程序流程控制 流程控制语句是用来控制程序中各语句执行顺序的语句,可以把语句组合成能完成一定功能的小逻辑模块. 其流程控制方式采用结构化程序设计中规定的三种基本流程结构,即: 顺序结构.分支结构.循环结 ...
- MarkDown基本语法--程序员必修
文章目录 MarkDown基本语法 一.标题 二.字体 三.引用 四.分割线 五.图片 六.超链接 七.列表 1.无序列表 2.有序列表 八.表格 九.代码 十.流程图 十一.总结 MarkDown基 ...
- 2-5Java基本语法----程序流程控制(1)if-else结构练习2----三个数排序
题目: /* 编写程序:有键盘输入三个整数分别存入变量num1,num2,num3, 对它们进行排序(使用 if-else )并且从小到大输出 / / 说明: 1.if-else结构是可以相互嵌套的 ...
- 编译原理之算符优先分析语法程序
声明:本程序只是笔者的第一次构造结果,存在非常多需要改进的地方,笔者会在github上持续重构,大家可以在下面地址中找到最新的重构代码.https://github.com/Ggmatch/The-p ...
- 【w3cschool】python3语法复习
1.语法 程序板子: 中文编码一般需要在最前面加上声明:#-*- coding:UTF-8 -*- 或 #coding=UTF-8. 输出:print('Hello world!'), 单行注释以#开 ...
- 初入python世界——python基础语法
python基础语法 程序的格式框架 缩进(Indent) Python语言采用严格的"缩进"来表明程序的格式框架.缩进指每一行代码开始前的空白区域,用来表示代码之间的包含和层次关 ...
- JavaScript学习笔记--【黑马程序员】
目录 一.编程语言 1.1 编程 1.2 计算机语言 1.3 编程语言 1.4 翻译器 1.5 编程语言和标记语言区别 总结 二.计算机基础 2.1 计算机组成 2.2.数据存储 2.3 数据存储单位 ...
- Arduino 语法参考
Arduino 语法参考 程序功能 数字输入/输出 模拟输入/输出 Zero.Due.MKR 系列.Nano 33(BLE 和 IoT)和 Portenta 的模拟 API 的扩展 高级输入/输出 延 ...
- c语言程序处理数据的基本步骤是,c语言程序教程.doc
c语言程序教程 c语言程序教程 本文由tyr1235831贡献 ppt文档可能在WAP端浏览体验不佳.建议您优先选择TXT,或下载源文件到本机查看. C语言程序设计 语言程序设计 2008版 版 1 ...
最新文章
- 【Android 逆向】Android 系统文件分析 ( Android 系统 root 环境准备 | 查看 Android 根目录信息 )
- eclipse安装weblogic Server服务器
- C#.NET常见问题(FAQ)-Combobox如何设置不可以编辑
- iOS iPhone SDK 包含哪些东西?
- LeetCode MySQL 1495. Friendly Movies Streamed Last Month
- 操作系统之进程管理:13、吸烟者问题
- SpringMVC之源码分析--ThemeResolver(三)
- 新势力首家 小鹏汽车正式纳入港股通!
- 一页纸项目管理图书和简单模板
- 什么样学生适合学计算机动漫,动画专业的学生,如何选购电脑?
- 百战程序员 全栈软件测试课程 2022 笔记
- 国内外无线传感器网络专利分析
- 游戏启动流程的逆向分析与多开的实现
- ASP.NET MVC入门视频教程
- CSS 让背景图片全部显示,填满父div
- 51Nod1631 小鲨鱼在51nod小学
- Spring Cloud Netfilx Zuul : API网关服务
- 计算机专业考研还是不考研?这才是本质区别!
- 教你如何在中关村这个险恶的地方买到最便宜的称心如意的笔记本电脑
- 诚龙网刻报错_网刻工具|诚龙网维全自动PXE网刻工具V11.0下载(暂未上线)_预约_飞翔下载...