首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >环形计数器中的左移位

环形计数器中的左移位
EN

Stack Overflow用户
提问于 2021-12-30 22:32:26
回答 1查看 166关注 0票数 1
代码语言:javascript
复制
module RingCounter(

input logic Clock,

input logic Reset,

output logic [3:0] Count

);


always_ff @(posedge Clock, posedge Reset)

begin

if (Reset) 

Count <= 4’d1;

else 

Count <= {Count[2:0], Count[3]};

end

endmodule

我在SystemVerilog中有一个4位环形计数器的工作代码,但我不确定其中一行是如何工作的,因为它在讲座中没有得到明确的解释。

代码语言:javascript
复制
Count <= {Count[2:0], Count[3]};

任何帮助解释这一行到底做了什么,将不胜感激。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-12-30 23:00:27

花括号{}是连接操作符。它们将多个比特连接到一个总线中。

在非阻塞分配(<=)的左侧,有Count,这是编写4位总线:Count[3:0]的一种简短方式。

在赋值的右边,您将3位信号Count[2:0]与1位信号Count[3]连接起来。

另一种编写RHS的方法是按以下顺序作为4个单独的位:

代码语言:javascript
复制
{Count[2], Count[1], Count[0], Count[3]}

另一种编写LHS的方法是按以下顺序作为4个单独的位:

代码语言:javascript
复制
{Count[3], Count[2], Count[1], Count[0]}

因此,分配将新的Count[3]设置为旧的Count[2],等等。

参见IEEE Std 1800-2017,第11.4.12节串联运营商。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70537337

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档