verilog 常见单元描述
半加器:
//行为级建模
module half_adder2(a, b, sum, c_out);
input a, b;
output sum, c_out;
assign {c_out, sum} = a + b;
endmodule
// 结构级建模
module half_adder(a, b, sum, c_out);
input a, b;
output sum, c_out;
xor (sum, a, b);
and (c_out, a, b);
endmodule
进位选择加法器:
多路复用器:
//行为模型
module Mux_4_32_case(
output [:] mux_out,
input [:] data_3, data_2, data_1, data_0,
[:] select,
input enabel
);
reg [:] mux_int;
assign mux_out = enable ? mux_int : 32b'z;
always @ (data_3, data_2, data_1, data_0, select)
case (select)
: mux_int = data_0;
: mux_int = data_1;
: mux_int = data_2;
: mux_int = data_3;
default: mux_int = 32b'x; //当select包含z or x时的状态,不加default vivado综合出来的电路图没有区别,但是不知道在tb上会不会出问题
endcase
endmodule
//使用if条件语句行为级建模
module Mux_4_32_if(
output [:] mux_out,
input [:] data_3, data_2, data_1, data_0,
input [:] select,
input enable
);
reg [:] mux_int;
assign mux_out = enable ? mux_int : 'bz;
always @(data_3, data_2, data_1, data_0, select)
if(select == 'b00) mux_int = data_0; else
if(select == 'b01) mux_int = data_1; else
if(select == 'b10) mux_int = data_2; else
if(select == 'b11) mux_int = data_3; else
mux_int = 'bx;
endmodule
module Mux_4_32_CA(
output [:] mux_out,
input [:] data_3, data_2, data_1, data_0,
input [:] select,
input enable
);
wire [:] mux_int;
assign mux_out = enable ? mux_int : 'bz;
assign mux_int = (select==) ? data_0:
(select==) ? data_1:
(select==) ? data_2:
(select==) ? data_3: 'bx;
endmodule
编码器
//case 优先编码器
module priority_case(
output reg [:] Code,
output valid_data,
input [:] Data
);
assign valid_data = |Data; //“reduction or" operator
always @(Data)
casex (Data)
'b1xxxxxxx : Code = 7;
'b01xxxxxx : Code = 6;
'b001xxxxx : Code = 5;
'b0001xxxx : Code = 4;
'b00001xxx : Code = 3;
'b000001xx : Code = 2;
'b0000001x : Code = 1;
'b00000001 : Code = 0;
default : Code = 'bx;
endcase
endmodul
verilog 常见单元描述的更多相关文章
- Quartus II 中 Verilog 常见警告/错误汇总
Verilog 常见错误汇总 1.Found clock-sensitive change during active clock edge at time <time> on regis ...
- No.2 Verilog 模块和描述风格
2-1 模块 Verilog语言基本的描述单元----模块,模块是用来描述某个设计的功能或结构,以及它与其它外部模块进行通信的端口. module module_name(port_list); De ...
- verilog常见错误列表
Error/Warning 来源:https://hdlbits.01xz.net/wiki/ 题目: 1.Quartus Warning 10235: Warning (): Verilog HDL ...
- spring中常见注解描述
@Qualifier如果一个接口类有多个实现类,那么可以用@Qualifier指定使用哪个实现类: /** * 定时器,用于处理超时的挂起请求,也用于连接断开时的重连. */ @Autowired @ ...
- Verilog HDL的程序结构及其描述
这篇博文是写给要入门Verilog HDL及其初学者的,也算是我对Verilog HDL学习的一个总结,主要是Verilog HDL的程序结构及其描述,如果有错,欢迎评论指出. 一.Verilog ...
- Verilog的数据流、行为、结构化与RTL级描述
Verilog语言可以有多种方式来描述硬件,同时,使用这些描述方式,又可以在多个抽象层次上设计硬件,这是Verilog语言的重要特征. 在Verilog语言中,有以下3种最基本的描述方式: 数据流描述 ...
- 对Verilog 初学者比较有用的整理(转自它处)
*作者: Ian11122840 时间: 2010-9-27 09:04 ...
- python描述符理解
Python中的描述符是一个相对底层的概念 descriptor Any object which defines the methods get(), set(), or delete(). Whe ...
- Verilog HDL模型的不同抽象级别
所谓不同的抽象类别,实际上是指同一个物理电路,可以在不同层次上用Verilog语言来描述.如果只从行为功能的角度来描述某一电路模块,就称作行为模块.如果从电路结构的角度来描述该电路模块,就称作结构模块 ...
随机推荐
- 201871010113-刘兴瑞《面向对象程序设计(java)》第十二周学习总结
项目 内容 这个作业属于哪个课程 <任课教师博客主页链接>https://www.cnblogs.com/nwnu-daizh/ 这个作业的要求在哪里 <作业链接地址>http ...
- python--基础知识点梳理(二)面向对象
面向过程:根据业务逻辑从上到下写代码 面向对象:将数据与函数绑定在一起,进行封装,优点:快速高效 ,减少代码重写 面向对象三大特性:封装.继承.多态 # 封装的意义,隐藏实现细节 将属性和方法放到一起 ...
- Nginx之负载均衡 :两台服务器均衡(填坑)
第一步,两台服务器都要安装好Nginx和Tomcat,我这边的安装的是Nginx 1.16.1 Tomcat9: 第二步,安装完成之后,选择你要做均衡的那台服务器,,打开其Nginx 配置文件,在se ...
- springboot-热部署Jrebel
1. 场景描述 介绍下idea+springboot下的热部署插件-Jrebel,贼好用,以前用过好多种,但是总出现不稳定或者会莫名其妙的没有部署新代码. 2.解决方案 springboot自带的de ...
- ExtJS布局控件
Layout Controls Auto Layout Ext JS4中的容器的默认布局是自动布局.这个布局管理器会自动地将组件放在一个容器中. Fit Layout Fit布局安排了容器的内容完全占 ...
- 使用os模块动态获取目录或文件路径
在接口自动化测试框架中,我们的代码除了能在本地运行,也能在不在修改代码的前提下在其他的环境下能够运行,这样才能达到高复用性和低维护成本,我们在接口测试的模块调用中,会定义很多相关路径,而这些路径必须使 ...
- njnja 安装
git clone git://github.com/ninja-build/ninja.git && cd ninja 安装re2c wget https://kojipkgs.f ...
- Python规范:提高可读性
PEP 8 规范 PEP 是 Python Enhancement Proposal 的缩写,翻译过来叫"Python 增强规范". 缩进规范 PEP 8 规范告诉我们,请选择四个 ...
- 我用python爬取了知乎Top沙雕问题排行榜
前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者: 数据森麟 PS:如有需要Python学习资料的小伙伴可以加点击下方 ...
- ojdbc.jar在maven中报错(下载不了)
一.问题 由于oracle的版权问题,java连接oracle的jar(ojdbc.jar)在maven的中央仓库下载不到,然后导致maven项目报错. 二.解决 第一步:下载ojdbc.jar 由于 ...



