29 / 36 · Практика
Практика симуляции сдвигового регистра
Проследите последовательный вход вместе с q.
Уроки доступны бесплатно. Запишитесь, чтобы сохранять прогресс.
Подготовьте пример
Подготовьте проект Digital Design Studio Desktop и права запуска. Сохраните каждый пример в отдельной папке как rtl/top.sv.
module top (
input logic clk,
input logic rst,
input logic din,
output logic [2:0] q
);
// Old q[1:0] and din are captured together at each rising edge.
always_ff @(posedge clk)
if (rst) q <= 3'b000;
else q <= {q[1:0], din};
endmodule
Запуск примера
В New analysis выберите Two-state single-clock v1, задайте Clock port=clk и период 1000ps. С указанными ниже значениями выполните Preflight, затем Run RTL simulation и сравните результат.
- Начальные значения регистра (младший бит первым)
- [false,false,false]
- Порт сброса
- rst · Активный высокий · 1 цикл
- Максимум циклов / времени
- 5 / 5000ps
Входы симуляции
Файл задаёт входы схемы на каждом шаге. Раскройте имя файла для просмотра или скачайте его.
[
{
"inputs": {
"din": [
false
]
}
},
{
"inputs": {
"din": [
true
]
}
},
{
"inputs": {
"din": [
false
]
}
},
{
"inputs": {
"din": [
true
]
}
},
{
"inputs": {
"din": [
true
]
}
}
]
Сравните результат
После 5 циклов q=011. Последовательность после фронтов: 000→001→010→101→011.
Практика использует двухсостоянийный RTL с одним тактом. Не добавляйте #delay, initial или тестбенчи X/Z. Учебный прогресс не подтверждает запуск симулятора.