本片记录Verilog学习笔记,主要是和以往用的C语言的不同之处,以例子、代码的形式记录。学习以《Verilog数字系统设计》(第二版)为参考资料,援助作者夏宇闻。

1. C语言和Verilog描述的硬件的执行原理

  C程序:顺序执行,一行一行依次执行。在单片机上是一条指令,一条指令的一条指令的执行。

  Verilog:并行执行,很多个部分可以一起执行,就像水往低处流,分叉一样。

2. 一个二选一多路选择器的代码:

module muxtwo (out, a, b,  sl);
input a, b, sl;
output out;
reg out;
always @(sl or a or b)
if (!sl)
out = a;
else
our = b;
endmodule

  从代码的主要逻辑中可以看出,这个模块功能:如果 sl 为真(高电平),则输出 out 为 b。如果 sl 为假(低电平),则输出 out 为a。根据 sl 信号的高、低电平来确定返回值。

  

Verilog笔记——Verilog数字系统设计(第二版)夏宇闻的更多相关文章

  1. Verilog笔记.2.数字逻辑电路

    1.数字逻辑电路的种类:1) 组合逻辑:输出只是当前输入逻辑电平的函数(有延时),与电路的原始状态无关的逻辑电路.也就是说,当输入信号中的任何一个发生变化时,输出都有可能会根据其变化而变化,但与电路目 ...

  2. 夏宇闻教授谈FPGA工程师的入门学习

    1. 必须清楚自己究竟适合不适合做工程师. 看看自己的性格特点,是不是特别安静,又耐得住寂寞.因为FPGA工程师是一个辛苦的工作,不但要通过不断学习研究提升自己的设计水平,还要经常性的熬夜加班敲写代码 ...

  3. 《Verilog数字系统设计教程(第2版).pdf》

    Verilog数字系统设计教程(第2版).pdf https://github.com/shigh1005/pdf_book <Linux设备驱动开发详解:基于最新的Linux 4.0内核.pd ...

  4. python核心编程第二版笔记

    python核心编程第二版笔记由网友提供:open168 python核心编程--笔记(很详细,建议收藏) 解释器options:1.1 –d   提供调试输出1.2 –O   生成优化的字节码(生成 ...

  5. 基于Verilog HDL 的数字时钟设计

    基于Verilog HDL的数字时钟设计 一.实验内容:     利用FPGA实现数字时钟设计,附带秒表功能及时间设置功能.时间设置由开关S1和S2控制,分别是增和减.开关S3是模式选择:0是正常时钟 ...

  6. 《python基础教程(第二版)》学习笔记 字符串(第3章)

    <python基础教程(第二版)>学习笔记 字符串(第3章)所有的基本的序列操作(索引,分片,乘法,判断成员资格,求长度,求最大最小值)对字符串也适用.字符串是不可以改变的:格式化输出字符 ...

  7. 《python基础教程(第二版)》学习笔记 基础部分(第1章)

    <python基础教程(第二版)>学习笔记 基础部分(第1章)python常用的IDE:Windows: IDLE(gui), Eclipse+PyDev; Python(command ...

  8. Javascript DOM 编程艺术(第二版)读书笔记——基本语法

    Javascript DOM 编程艺术(第二版),英Jeremy Keith.加Jeffrey Sambells著,杨涛.王建桥等译,人民邮电出版社. 学到这的时候,我发现一个问题:学习过程中,相当一 ...

  9. R语言实战(第二版)-part 1笔记

    说明: 1.本笔记对<R语言实战>一书有选择性的进行记录,仅用于个人的查漏补缺 2.将完全掌握的以及无实战需求的知识点略去 3.代码直接在Rsudio中运行学习 R语言实战(第二版) pa ...

随机推荐

  1. ubuntu 安装 pycharm

    添加源: $ sudo add-apt-repository ppa:mystic-mirage/pycharm   安装收费的专业版: $ sudo apt update $ sudo apt in ...

  2. BigData_Jia

    #include <stdio.h> #include <string.h> #define MaxSize 10000 int n1, n2, i, k, times; ch ...

  3. SQL Server Service Broker 示例(转)

    1.定义数据类型.协议和服务(发送服务和接收服务) USE master; GO ALTER DATABASE 目标数据库 SET ENABLE_BROKER; GO -- 如果上面的操作执行后,长时 ...

  4. 脚本添加crontab任务

    #!/bin/bash export LANG=en_US.utf8 cur_dir=$(cd ``;pwd) job_cmd_info="\n# 每天凌晨5点运行定时删除工具\n" ...

  5. Day 16 模块和包的导入

    包的认识 包通过文件夹来管理一些列功能相近的模块 包:一系列模块的集合体 重点:包中一定有一个专门来管理包中所有模块的文件 包名:存放一系列模块的文件夹名字 包名(包对象)存放的是管理模块的那个文件地 ...

  6. Azure CosmosDB (7) 分区键Partition Key

    <Windows Azure Platform 系列文章目录> Azure Cosmos DB使用分区键(Partition Key),来对数据进行水平缩放(Horizon Scale), ...

  7. CentOS7(64) yum安装、配置PostgreSQL 11

    一.安装postgresql11 1.Install the repository RPM: 添加RPM yum install https://download.postgresql.org/pub ...

  8. Ubuntu 12.04 LTS 查看网关地址方法汇总

    来源:http://blog.csdn.net/duyiwuer2009/article/details/26263855 1. ip route show $ ip route show defau ...

  9. 分布式job-任务调度(一)

    什么是任务调度: 任务调度:在单位时间内,去调用某个方法或者执行某段代码 java实现方式: 方法一(使用线程实现): public static void ThreadTskScheduling() ...

  10. oracle、grid 用户ID

    oracle.grid 用户ID [root@db-rac02 rules.d]# id oracle uid=54321(oracle) gid=54321(oinstall) groups=543 ...