verilog - 具有启用和异步复位功能的 4 位寄存器
问题描述
我正在建模一个具有启用和异步复位的 4 位寄存器。该寄存器有 3 个一位输入,即 clk、reset 和 enable、1 个四位输入、D 和 1 个使用 verilog 的四位输出 Q。这是我的设计和测试平台。设计
module fourbitreg(D,clk,reset,enable, Q);
input[3:0] D; // Data input
input clk,reset,enable;
output[3:0] Q; // output Q
reg[3:0] Q;
always @(posedge clk or posedge reset)
begin
if(reset)
Q <= 4’b0;
else if (enable)
Q <= D;
end
endmodule
试验台
module four_bitreg_tb;
reg [3:0] D;
reg clk,reset,enable;
wire[3:0]Q;
always #5 clk = ~clk;
fourbitreg uut(.D(D),.clk(clk),.reset(reset),.enable(enable),.Q(Q));
initial begin
$monitor("time=",$time,"D=%b reset =%d enable =%d Q=%b",D,reset,enable,Q);
$dumpfile("dump.vcd");
$dumpvars;
reset <= 0;
enable <= 0;
D <= 4'b0000;
#5
D <= 4'b0001;
reset <= 0;
enable <= 1;
#5
D <= 4'b0010;
reset <= 1;
enable <= 0;
#5
D <= 4'b0011;
reset <= 1;
enable <=1;
#5
D <= 4'b0100;
reset <= 0;
enable <= 0;
#5
D <= 4'b0101;
reset <= 0;
enable <= 1;
#5
D <= 4'b0110;
reset <= 1;
enable <= 0;
#5
D <= 4'b0111;
reset <= 1;
enable <= 1;
#5
D <= 4'b1000;
reset <= 0;
enable <= 0;
#5
D <= 4'b1001;
reset <= 0;
enable <= 1;
#5
D <= 4'b1010;
reset <= 1;
enable <= 0;
#5
D <= 4'b1011;
reset <= 1;
enable <= 1;
#5
D <= 4'b1100;
reset <= 0;
enable <= 0;
#5
D <= 4'b1101;
reset <= 0;
enable <= 1;
#5
D <= 4'b1110;
reset <= 1;
enable <= 0;
#5
D <= 4'b1111;
reset <= 1;
enable <= 1;
#20 $finish;
end
endmodule
编译代码时出现以下错误。
4bitreg.v:9: syntax error
I give up.
我没有发现代码有任何问题。
解决方案
Q <= 4’b0;
第 9 行应更改为Q <= 4'b0;
.
推荐阅读
- java - 程序在 Eclipse 中工作,但是当我导出到可运行的 JAR 时它没有。FileNotFoundException
- google-apps-script - 使用 Google Apps 脚本从 Google 表格加载图像
- apache-spark-sql - 如何提高具有数组列的 DataFrame 的 Spark SQL 查询性能?
- macos-mojave - 如何解决登录屏幕上的问号?
- java - 如何在 FTPClient 中更改目录。单个 FTPClient InputStream 中的多个目录连接。未知解析器类型:“/Path”是当前目录
- http - http.FileServer 只服务于 index.html
- python - 在一系列数字上绘制数字列表
- java - 无法将另一个目录中的类用于主 java 程序
- python - 无法在 jupyter 笔记本中导入 fastparquet
- python - Mac pycharm无法安装lxml包