2014-11-18 3 views
0

Я хочу спросить о переключении одного бита, например x [3] в битовом векторе x [0: 3], на один, если он равен нулю или равен нулю, если он один в verilog.So если x = 0101, он станет x = 0100. Я попытался объединиться, но это не ошибка в verilog. Можете ли вы мне помочь? Мой код: http://www.edaplayground.com/x/JAc где x: вход и y: x после мутате один битКак сделать дополнение для одного бита в verilog

Заранее спасибо.

ответ

0
always_comb begin 
    x = 4'b0101 ; 
    x[3] = ~x[3] ; //overwrite x[3] with its complement 
end 

или

always_comb begin 
    x = 4'b0101 ; 
    x[3] = x[3]^1'b1 ; //XOR x[3] with 1 
end 
+0

Спасибо .. но все еще много ошибок. Этот мой код вы можете мне помочь? где x: вход и y: x после мутанта 1 бит. модуль Мутация (x, y); \t ввод [0: 3] x = 0000; \t выход [0: 3] y; \t reg [0: 3] y; \t always @ (x) начало x = 4'b0101; x [3] = ~ x [3]; // переписать x [3] с его дополнением \t y = {x [0: 3]}; \t конец \t endmodule // также и это испытательный стенд модуль TBMutation; параметр s = 4; \t reg [0: s-1] x; \t провод [0: s-1] y; \t Мутация m (.x (x), y (y),); \t начальное начало \t \t // Инициализационный ввод \t \t x = 2; \t \t // Подождите 100 нс для завершения глобального сброса \t \t # 100; \t конца endmodule – Sereena

+0

Это ошибка: Строка 30: Процедурное присвоение нерегистрового й не допускается, левая сторона должна быть регло/число/время/genvar линии 30 находится по адресу: х [3] = ~ x [3]; – Sereena

+2

Это хорошая практика, чтобы написать свой код в чистом виде, чем в комментариях, чтобы другие могли легко прочитать его. Вы также можете написать его здесь http://www.edaplayground.com/ и опубликовать ссылку на этом сайте. Кроме того, вы можете просмотреть эту страницу, прежде чем размещать вопросы: http://stackoverflow.com/help/how-to-ask – Ari

1

Чтобы изменить один бит в качестве части автобуса:

module bit_mangle(
    input [3:0] x, 
    output [3:0] y 
); 

    always @* begin 
    y = {x[3:1], ~x[0]} ; 
    end 

endmodule 

Я обновил копию кода на EDA детской площадке, и исправил несколько вопросов тест-тест. Working simulation on EDA Playground.

Чаще всего для определения автобусов от [SIZE-1: 0]. Ваш старый Mutation-код пытался управлять вводом в двух местах, вместо того, чтобы уровень выше превысил значение.

Смежные вопросы