1 Star 0 Fork 5

fb1103/basic_verilog

forked from yhp/basic_verilog 
加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
set_reset_comb.sv 1.93 KB
一键复制 编辑 原始数据 按行查看 历史
//--------------------------------------------------------------------------------
// set_reset_comb.sv
// Konstantin Pavlov, pavlovconst@gmail.com
//--------------------------------------------------------------------------------
// INFO --------------------------------------------------------------------------------
// Synchronous SR trigger, but has a combinational output that changes
// "with no delay" after inputs
// No metastable state. RESET signal dominates here
// | | +---+ | | | | | | SET
// | | | | | | | | | |
// +------------+ +--------------------------------+
// | | | | | | | | | |
// | | | | | | +---+ | | RESET
// | | | | | | | | | |
// +----------------------------+ +----------------+
// | | | | | | | | | |
// | | | +---------------+ | | Q output, original
// | | | | | | | | | | set_reset.sv
// +----------------+ | | | +----------------+
// | | | | | | | | | |
// | | +---------------+ | | | Q output, this module
// | | | | | | | | | | set_reset_comb.sv
// +------------+ | | | +--------------------+
// | | | | | | | | | |
// | | | | | | | | | |
/* --- INSTANTIATION TEMPLATE BEGIN ---
set_reset_comb SR1 (
.clk( clk ),
.nrst( 1'b1 ),
.s( ),
.r( ),
.q( ),
.nq( )
);
--- INSTANTIATION TEMPLATE END ---*/
module set_reset_comb(
input clk,
input nrst,
input s,
input r,
output q,
output nq
);
logic q_reg = 0;
always_ff @(posedge clk) begin
if( ~nrst ) begin
q_reg = 0;
end else begin
if( s ) q_reg = 1'b1;
if( r ) q_reg = 1'b0;
end
end
assign q = (s || q_reg) && ~r;
assign nq = ~q;
endmodule
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/fb1103/basic_verilog.git
git@gitee.com:fb1103/basic_verilog.git
fb1103
basic_verilog
basic_verilog
master

搜索帮助